मैं अजवाइन पहला कदम ट्यूटोरियल यहाँ अनुसरण कर रही हूं: http://celery.readthedocs.org/en/latest/getting-started/first-steps-with-celery.html#keeping-resultsअजवाइन पहला कदम - result.get पर टाइमआउट त्रुटि()
मैं ट्यूटोरियल के साथ अनुसरण कर रही हूं उसी रूप में, RabbitMQ के साथ।
जब मैं परिणाम कर रहा हूं .get (timeout = 1), यह एक टाइमआउट त्रुटि दिखा रहा है, भले ही यह एक साधारण ऐड ऑपरेशन है, और मैं देख सकता हूं कि कार्यकर्ता चल रहा है और सही परिणाम (8) का उत्पादन कर रहा है अन्य विंडो
(venv) C:\Volt\celerytest>ipython
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.
IPython 2.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: from tasks import add
In [2]: a = add(1,3)
In [3]: a
Out[3]: 4
In [4]: a = add.delay(1,3)
In [5]: a.ready()
Out[5]: False
In [6]: a = add.delay(4,4)
In [7]: a.get(timeout=0.5)
---------------------------------------------------------------------------
TimeoutError Traceback (most recent call last)
<ipython-input-7-2c407a92720e> in <module>()
----> 1 a.get(timeout=0.5)
C:\Users\Som\Envs\venv\lib\site-packages\celery\result.pyc in get(self, timeout,
propagate, interval, no_ack, follow_parents)
167 interval=interval,
168 on_interval=on_interval,
--> 169 no_ack=no_ack,
170 )
171 finally:
C:\Users\Som\Envs\venv\lib\site-packages\celery\backends\amqp.pyc in wait_for(se
lf, task_id, timeout, cache, propagate, no_ack, on_interval, READY_STATES, PROPA
GATE_STATES, **kwargs)
155 on_interval=on_interval)
156 except socket.timeout:
--> 157 raise TimeoutError('The operation timed out.')
158
159 if meta['status'] in PROPAGATE_STATES and propagate:
TimeoutError: The operation timed out.
In [8]:
tasks.py फ़ाइल
from celery import Celery
app = Celery('tasks', backend='amqp', broker='amqp://')
@app.task
def add(x, y):
return x + y
कार्यकर्ता लॉग
[tasks]
. tasks.add
[2014-07-17 13:00:33,196: INFO/MainProcess] Connected to amqp://guest:**@127.0.0
.1:5672//
[2014-07-17 13:00:33,211: INFO/MainProcess] mingle: searching for neighbors
[2014-07-17 13:00:34,220: INFO/MainProcess] mingle: all alone
[2014-07-17 13:00:34,240: WARNING/MainProcess] [email protected] ready.
[2014-07-17 13:00:34,242: INFO/MainProcess] Received task: tasks.add[85ff75d8-38
b5-442a-a574-c8b976a33739]
[2014-07-17 13:00:34,243: INFO/MainProcess] Task tasks.add[85ff75d8-38b5-442a-a5
74-c8b976a33739] succeeded in 0.000999927520752s: 4
[2014-07-17 13:00:46,582: INFO/MainProcess] Received task: tasks.add[49de7c6b-96
72-485d-926e-a4e564ccc89a]
[2014-07-17 13:00:46,588: INFO/MainProcess] Task tasks.add[49de7c6b-9672-485d-92
6e-a4e564ccc89a] succeeded in 0.00600004196167s: 8
कि के लिए धन्यवाद। यह वास्तव में एक साधारण हैक अभी तक मुझे दो दिनों के लिए सीधे फिसल गया ... धन्यवाद। लेकिन आश्चर्य कीजिए कि वे क्यों नहीं बताएंगे कि दस्तावेज़ों में भी मुझे आश्चर्य है कि यह गाइड के बाकी हिस्सों को प्रभावित करेगा क्योंकि गाइड 'amqp' ब्रोकर – lukik
पर आधारित है, यह त्रुटि अभी भी किसी भी सुझाए गए फ़िक्स के बिना प्रलेखन में है। मैं इसे ठीक करने का अनुरोध करने जा रहा हूं। – EML
+1 यह दिखाने के लिए कि एक अलग परिणाम बैकएंड का उपयोग कैसे करें! ध्यान दें कि sqlalchemy को स्क्लाइट बैकएंड का उपयोग करने की आवश्यकता है जिसे आसानी से 'पीआईपी इंस्टॉल sqlalchemy' के माध्यम से स्थापित किया जा सकता है। – Kim