1
@celery.task(bind=True, max_retries = 5)
def send_notification_task(self, user_id, content):
print 'Sending message to pubnub'
msg = prepare_message(16182 , 16182, 'Android', 'This is a text message')
def _callback(message):
print 'success callback'
print(message)
def _error(message):
print 'error callback'
print self.request.retries
print self
countdown = int(random.uniform(2, 4) ** self.request.retries)
print countdown
raise self.retry(countdown=countdown)
publish('16182', msg, _callback, _error)
print 'returning success to celery'
current_task.update_state(state='PROGRESS', meta={'description': 'Doing some task', 'current': 59, 'tota': 73})
任务在这里,我想只有在回调方法,即成功或失败的任务标记为已成功/失败。但是,只要此函数返回,任务就被标记为成功(发布本身就是异步调用)。
我该如何处理?
我已经尝试将任务标记为PROGRESS
作为最后一行。