1

私はCeleryAmazon SQS を使用していますが、ログにこれらの負荷が表示されます。

[2013-06-19 19:03:42,890: ERROR/MainProcess] Pool callback raised exception: KeyError('8a8fe51c-b69f-498e-95c1-f037e2f2d4a8',)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/billiard/pool.py", line 129, in safe_apply_callback
    fun(*args)
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/job.py", line 301, in on_accepted
    self.acknowledge()
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/job.py", line 439, in acknowledge
    self.on_ack(logger, self.connection_errors)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/base.py", line 98, in ack_log_error
    self.ack()
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/base.py", line 93, in ack
    self.channel.basic_ack(self.delivery_tag)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/SQS.py", line 252, in basic_ack
    delivery_info = self.qos.get(delivery_tag).delivery_info
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/virtual/__init__.py", line 127, in get
    return self._delivered[delivery_tag]
KeyError: '8a8fe51c-b69f-498e-95c1-f037e2f2d4a8'

私はこれをグーグルで検索しようとしましたが、それがどこから来ているのか誰も本当に知らないようですか? 何が起こっているのか誰か知っていますか?私が気付いたいくつかの奇妙な動作、タスクが失敗し、同じタスクを何度も再試行します。しばらくすると、再試行されるだけでなく、ログ (またはそのログ ステートメント) にエラーが表示されなくなります。タスクがあり、それを試すと言っているだけです。何が起こったのかわからない?

以下を使用してすべてをパージしました。

from celery.task.control import discard_all
discard_all()

どういうわけか、タスクが再び実行されています。これがどのように可能であるかについて、誰かが情報を持っていますか?

4

1 に答える 1