Django+ DRF + Celery:为每个对象在不同的时间为数据库中的不同对象安排相同的任务

问题描述 投票:0回答:0

我正在处理一个人力资源应用程序,其中一家公司有一个分支机构,每个分支机构都有其工作日政策,其中分支机构决定工作日的开始和结束时间以及员工缺勤的时间'入住和周末,

class WorkingDaysPolicy(TimeStampedModel):

    WeekendDays = (
        (5, "Saturday"),
        (6, "Sunday"),
        (0, "Monday"),
        (1, "Tuesday"),
        (2, "Wednesday"),
        (3, "Thursday"),
        (4, "Friday"),
    )

    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
    branch = models.ForeignKey(
        Branch,
        on_delete=models.CASCADE,
        blank=True,
        null=True,
        related_name="branch_working_days",
    )
    number_of_daily_working_hrs = models.PositiveSmallIntegerField(
        _("Number of daily working hours")
    )
    weekend_days = MultiSelectField(
        _("Weekend days"), choices=WeekendDays, null=True, blank=True
    )
    normal_overtime_hourly_rate = models.FloatField(
        _("normal overtime hourly rate"), null=True, blank=True
    )
    day_starts_at = models.TimeField(_("Working day starts at"), blank=True, null=True)
    day_ends_at = models.TimeField(_("Working day ends at"), blank=True, null=True)
    absence_Starts_at = models.TimeField(_("Absence Starts at"), blank=True, null=True)

现在我有一个后台任务必须在 absence_Starts_at 时间并且只在工作日工作。

我尝试在 celery.py 上导入 WorkingDaysPolicy 模型以循环其对象并为每个分支分配任务,但应用程序在启动开发服务器时崩溃并引发

raise AppRegistryNotReady("Apps aren't loaded yet.")

如何根据数据库中保存的内容在不同时间为每个分支运行相同的任务。

python-3.x django django-celery background-task celerybeat
© www.soinside.com 2019 - 2024. All rights reserved.