0

我正在使用具有指定间隔的作业Django-rq的功能。Scheduling

https://github.com/rq/django-rq#support-for-rq-scheduler

task = scheduler.schedule(
    scheduled_time=datetime.utcnow(), # Time for first execution, in UTC timezone
    func=func,                     # Function to be queued
    args=[arg1, arg2],             # Arguments passed into function when executed
    kwargs={'foo': 'bar'},         # Keyword arguments passed into function when executed
    interval=60,                   # Time before the function is called again, in seconds
    repeat=None,                     # Repeat this number of times (None means repeat forever)
    meta={'foo': 'bar'}            # Arbitrary pickleable data on the job itself
)

print(task.id) ### JOB ID
5eedcd69-a318-4195-959f-eb6a404dec97
  • 现在我们有了每 60 秒执行一次并JOB ID为我们的调度程序返回的 JOB,我只想查看已执行的作业(次数/计数次数)。
example:

checking job `queue.fetch_job('5eedcd69-a318-4195-959f-eb6a404dec97').count` should return `5` times after 5 minutes
  • 有没有办法通过Django或者RQ的方式来实现呢?
4

1 回答 1

0

不完全是。Rq-scheduler 检查当前作业的执行日期并计算下一个作业将在运行时执行的时间。它不存储过去和未来的工作(只存储下一个)。

也许最接近这种行为的是“result_ttl”参数,您可以为其设置时间并定义作业在完成后将保留多长时间。

于 2020-10-15T16:00:04.883 回答