私はgearmanを使用して、さまざまな異なるジョブをキューに入れています。その中には、いつでもすぐにサービスを提供できるものと、信頼性の低い外部サービスを必要とするために「失敗」するものがあります。(たとえば、電子メールを送信するには、頻繁に使用できないSMTPサーバーが必要になる場合があります。)
外部サービスがダウンした場合、そのサービスを必要とするすべてのジョブをキューに残し、サービスが再び利用可能になるまで1つのジョブをときどき(たとえば、数分ごとに)再試行したいと思います。(サービスが何時間も利用できなかった場合は、オプションで電子メールを送信することもできます。)
ただし、失敗したサービスを必要としない仕事をできるだけ早く労働者に引き継いでほしい。これはどのように達成できますか?(必要に応じて、ロジックの一部をワーカーに配置できてうれしいですが、ワーカー側でスロットルするのは少し「遅い」ようです。)