Fix release from #1860 (hotfix #1934).

- Cron job to send weekly email report is processed multiple times. Review scheduling process to send to only one worker.
- Implement mechanism to ensure each email is sent only once to each recipient.
- Improve the way the async task is processed by creating a separate task for each organization, instead of processing all organizations in a single task.
posthog/celery.py
redis_instance.set("POSTHOG_HEARTBEAT", int(time.time()))
@app.task
def redis_celery_queue_depth():
    try:
        g = statsd.Gauge("%s_posthog_celery" % (settings.STATSD_PREFIX,))
        llen = redis_instance.llen("celery")
        g.send("queue_depth", llen)
    except:
        
        
        return
@app.task
def update_event_partitions():
    with connection.cursor() as cursor:
        cursor.execute(
            "DO $$ BEGIN IF (SELECT exists(select * from pg_proc where proname = 'update_partitions')) THEN PERFORM update_partitions(); END IF; END $$"
        )
@app.task
def status_report():