django_cron中的奇怪行

时间:2015-01-29 11:13:40

标签: python django django-cron

我正在使用此指令http://django-cron.readthedocs.org/en/latest/installation.html,无法理解“唯一代码”行的含义。

from django_cron import CronJobBase, Schedule

class MyCronJob(CronJobBase):
    RUN_EVERY_MINS = 120 # every 2 hours

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'my_app.my_cron_job'    # a unique code

    def do(self):
        pass    # do your thing here

任何人都可以解释一下这行是做什么的吗?

code = 'my_app.my_cron_job'    # a unique code

1 个答案:

答案 0 :(得分:0)

查看代码here

def make_log(self, *messages, **kwargs):
    cron_log = self.cron_log

    cron_job      = getattr(self, 'cron_job', self.cron_job_class)
    cron_log.code = cron_job.code

我们可以理解,这个"唯一代码"表示特定的cron任务。每次执行cron任务时,都会使用CronJobLog创建cron_log.code = cron_job.code实例。

因此,可以filter属于特定任务的日志:

last_job = CronJobLog.objects.filter(code=cron_job.code).latest('start_time')

这就是为什么它必须是唯一的,不要将一个cron任务的日志与另一个cron任务混合。 我认为它与id具有相同的目的,但是这段代码具有有意义的价值。