मैं आवधिक कार्यों को चलाने के लिए अपने आवेदन में celery
का उपयोग करता हूं। चलो नीचेअजवाइन के लिए कॉलबैक apply_async
from myqueue import Queue
@perodic_task(run_every=timedelta(minutes=1))
def process_queue():
queue = Queue()
uid, questions = queue.pop()
if uid is None:
return
job = group(do_stuff(q) for q in questions)
job.apply_async()
def do_stuff(question):
try:
...
except:
...
raise
सरल उदाहरण देखते हैं कि आप ऊपर के उदाहरण में देख सकते हैं, मैं celery
का उपयोग async कार्य चलाने के लिए है, लेकिन (क्योंकि यह एक कतार है) मैं अन्यथा do_stuff
या queue.ack(uid)
में अपवाद के मामले में queue.fail(uid)
करने की जरूरत है । इस स्थिति में दोनों मामलों में मेरे कार्य से कुछ कॉलबैक होने के लिए यह बहुत स्पष्ट और उपयोगी होगा - on_failure
और on_success
।
मैंने कुछ documentation देखा, लेकिन apply_async
के साथ कॉलबैक का उपयोग करने की प्रथाओं को कभी नहीं देखा। क्या यह करना मुमकिन है?