これがばかげた質問である場合、私は謝罪し、恥ずかしそうに頭を隠しますが、:
Pythonでジョブをキューに入れるためにrqを使用しています。私はそれがこのように機能することを望みます:
- ジョブAが開始されます。ジョブAは、Web APIを介してデータを取得し、保存します。
- ジョブAが実行されます。
- ジョブAが完了します。
- Aが完了すると、ジョブBが開始されます。ジョブBは、ジョブAによって保存された各レコードをチェックし、いくつかの追加の応答データを追加します。
- ジョブBが完了すると、ユーザーはレポートの準備ができたことを知らせる幸せな電子メールを受け取ります。
これまでの私のコード:
redis_conn = Redis()
use_connection(redis_conn)
q = Queue('normal', connection=redis_conn) # this is terrible, I know - fixing later
w = Worker(q)
job = q.enqueue(getlinksmod.lsGet, theURL,total,domainid)
w.work()
私の最善の解決策は、2人のワーカー(1人はジョブA用、もう1人はB用)であると想定しました。ジョブBのワーカーは、ジョブAを監視し、ジョブAが完了すると、ジョブBを開始できます。
自分の命を救うために私が理解できないのは、ある労働者に別の労働者の状況を監視させる方法です。job.idを使用してジョブAからジョブIDを取得できます。w.nameでワーカー名を取得できます。しかし、私がその情報を他の労働者にどのように渡すかについては、最も霧がかかっていません。
または、私が完全に欠けているこれを行うためのはるかに簡単な方法はありますか?