1

セロリと amqp でタスクを実行しようとすると、次のエラーが表示されます。構成に問題がありますか。これを修正するにはどうすればよいですか?

[2012-06-12 16:49:37,231: CRITICAL/MainProcess] Task core.tasks.sanity[c44c8058-46d1-48cd-a687-0481f5bd5ee5] INTERNAL ERROR: error("'i' format requires -2147483648 <= number <= 2147483647",)
Traceback (most recent call last):
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/execute/trace.py", line 192, in trace_task
    R = I.handle_error_state(task, eager=eager)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/execute/trace.py", line 91, in handle_error_state
    }[self.state](task, store_errors=store_errors)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/execute/trace.py", line 114, in handle_failure
    task.backend.mark_as_failure(req.id, exc, self.strtb)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/backends/base.py", line 96, in mark_as_failure
    traceback=traceback)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/backends/base.py", line 229, in store_result
    return self._store_result(task_id, result, status, traceback, **kwargs)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/backends/amqp.py", line 121, in _store_result
    "traceback": traceback})
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/kombu/connection.py", line 272, in _ensured
    return fun(*args, **kwargs)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/backends/amqp.py", line 97, in _publish_result
    self._create_producer(task_id, connection).publish(meta)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/celery/backends/amqp.py", line 87, in _create_producer
    self._create_binding(task_id)(connection.default_channel).declare()
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/kombu/entity.py", line 386, in declare
    self.queue_declare(nowait, passive=False)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/kombu/entity.py", line 408, in queue_declare
    nowait=nowait)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/amqplib/client_0_8/channel.py", line 1376, in queue_declare
    args.write_table(arguments)
  File "/nobackup/vivenara/pyenv/lib/python2.7/site-packages/amqplib/client_0_8/serialization.py", line 378, in write_table
    table_data.write(pack('>i', v))
error: 'i' format requires -2147483648 <= number <= 2147483647
4

1 に答える 1

2

結果を保存するときの値のオーバーフロー:

error: 'i' format requires -2147483648 <= number <= 2147483647

bigint/long 値が AMQP キューに書き込まれていますが、int として認識されています。それは私が信じる構成の問題ではありません。その結果、節約しようとする価値は何ですか?

スタック トレースに次のように表示されます。

return self._store_result(task_id, result, status, traceback, **kwargs)

結果の値を確認できますか? おそらくこれは奇妙な値です...

編集

task.backend.mark_as_failure(req.id, exc, self.strtb)

したがって、この場合、結果として exc が返されます。

def mark_as_failure(self, task_id, exc, traceback=None):
        """Mark task as executed with failure. Stores the execption."""
        return self.store_result(task_id, exc, status=states.FAILURE,
                                 traceback=traceback)

bigint ステータス コードを含むのは、タスクからスローされた例外でしょうか?

于 2012-06-12T11:35:06.933 に答える