2016-03-23 9 views
0

私は約10-15秒の実行にかかるAPIを呼び出すセロリタスクを実装しようとしています。 APIを呼び出した後、http-getを使用して結果をポーリングする必要があります。今私は2秒ごとに結果を得たいと思っています。つまり、2秒間労働者が自由になることを意味します。その特定の労働者がその期間無料であることをどういうわけかセロリに伝えることはできますか? 自分自身を明確にしていないかどうか教えてください。Python-ある期間、プログラマチックにセロリの労働者を無料にすることはできますか?

+0

あなたは2秒のタスクを遅らせたいと言って意味ですか? – AceLearn

+0

はい。そのとおり。 –

答えて

1

セロリタスクを遅延させる方法は2つあります。

1st: 

>>> tomorrow = datetime.now() + timedelta(days=1) 
>>> add.apply_async(args=[10, 10], eta=tomorrow) 

2nd: 
>>> result = add.apply_async(args=[10, 10], countdown=3) 
>>> result.get() # this takes at least 3 seconds to return 

出典:https://ask.github.io/celery/userguide/executing.html#eta-and-countdown

+0

これは、** add **を実行している作業者が次の3秒間ビジー状態になることを意味しません。 –

+0

私はワーカーを解放し、そのコンテキストを保存し、応答がない場合は3秒後に再度実行したいと考えています。例えば、 ** add **に実行するのに1秒しかかからないと言うと、次の2秒間作業員は自由になりますか? –

+0

いいえ、3秒間ビジーではありません。しかし、3秒後に実行されます。 – AceLearn

関連する問題