2013-10-08 12 views
6

मुझे models.py से एक सेलेरी कार्य (task.py में) कॉल करने की आवश्यकता है, केवल समस्या है, task.py import.py आयात करता है, इसलिए मैं task.py आयात नहीं कर सकता models.py।नाम से Django अजवाइन कार्य को कॉल करें

क्या इसे आयात किए बिना, केवल अपने नाम का उपयोग करके एक अजवाइन कार्य को कॉल करने का कोई तरीका है? इसी कारण से विदेशीकी क्षेत्रों के लिए एक समान चीज लागू की जाती है (परिपत्र आयात को रोकना)।

+3

आप' celery.execute.send_task ({kwvalue kwarg} 'mod.task_func', [ARG1, ARG2],) की कोशिश की? – falsetru

उत्तर

13

हां, वहां है।

आप उपयोग कर सकते हैं:

from celery import task 

@task(name='my_task') 
def my_task(): 
    ... 

आशा है कि यह मदद करता है:

from celery.execute import send_task  

send_task('my_task', [], kwargs) 

सुनिश्चित करें कि आप समारोह काम हो एक नाम है!

2

अजवाइन में 3+: `:

from celery import Celery 

app = Celery() 
app.send_task('my_task', [], kwargs) 
संबंधित मुद्दे