すべてのタスクについて、その日に実行されていないかどうかを追跡するブール値を格納できます。このデータはdbまたは一部のファイルストアに格納できます。 すべてのタスク値をfalseに設定するcronを毎日実行します(その日に実行されないタスクとしてfalseと仮定)。 タスクがすでに他の日のために行われた場合に返されますセロリpre_run信号は、タスク処理
from django.db import models
class TaskModel(models.Model)
task = models.CharField(max_length=200)
is_executed = models.BooleanField(default=False)
from celery.signals import task_prerun
@task_prerun.connect()
def task_setup(signal=None, sender=None, task_id=None, task=None, args=None, kwargs=None):
# this method executes before every celery task
task_obj = TaskModel.objects.get(task=task.name)
if task_obj.is_executed:
return
その日の労働者1人あたり、レディスをデータベースとして使ってどうすればいいですか?複数のセロリの従業員がいるので、私はRedisの値と共にそのキー/ idを保存したい。この方法では、1対1の一致があり、値は共有されません。 – NetRocks