1

我正在尝试获取特定任务在 Celery 中开始的时间戳。这可能吗?我在下面尝试过,但无法让它工作。我正在使用 Celery 3.0.19 和 mongodb 作为烧瓶中的代理。

class GenericTask(Task):
    abstract = True
    startTime = unicode(datetime.datetime.now())


@celery.task(name="tasks.create_provider", base=GenericTask)
def create_provider(name):
    with app.test_request_context():
        Provider.create(name=name)

然后后来..

async = create_provider.apply_async((name,), startTime=unicode(datetime.datetime.now()))

task = {'id': async.task_id,
        'operation': 'operation',
        'status': async.status,
        'startTime': async.startTime,
        'expiryTime': 'expiryTime'}
4

1 回答 1

2

在工作人员使用任务之前,可以使用“任务发送”事件来跟踪任务。只需附加到您的芹菜配置:

CELERY_SEND_TASK_SENT_EVENT = True

Celerymon 或芹菜花应显示带有时间戳的“任务发送”事件。

于 2013-05-24T12:20:25.740 回答