PHP を捨てずにできる比較的簡単なことを 2 つ思いつくことができます (ただし、PHP はあまり推奨されていません。Python/Django、Python/Flask、または Ruby/Rails を使用した方がよいでしょう)。 ):
1 つは、データベースを使用する代わりに、ワーカーを管理するために Redis に切り替えることができることです。これの利点は、Redis には、接続を開いたままシグナルをサブスクライブできる pub/sub システムがあることです。これは、たとえば Web プロセスから接続が開いている場合、ポーリングしなくてもすぐに変更が通知されることを意味します。
2 つは、待機中にページの読み込みをブロックしないように、ajax の使用に切り替えることができることです。すぐにページをロードし、javascript を使用して別の PHP ページにアクセスし、ジョブのステータスの更新を定期的にチェックします。結果が利用可能になったら、javascript を使用してそのページに結果をレンダリングします。
さらに良いことに、ajax long polling を使用します。ページをすぐにレンダリングしてから、javascript を使用してリクエストを送り返します。次に、php ページが 2 番目のリクエストを受信したら、サブスクリプションを Redis に登録し、更新を手動で確認します (Redis を使用していない場合は、更新を確認するだけです)。更新がない場合は、サブスクリプションがメッセージを受信するまで待つか、30 秒間待ちます。(正直なところ、私は PHP で Redis サブスクリプションを行ったことがないので、どのように実装するのかわかりません。簡単に実装できない場合は、代わりに数秒ごとにポーリングしてください。) 30 秒のタイマーが期限切れになった場合、結果がないことを示すjsonを返し、javascriptにすぐに再試行させます。その時間内に結果を受け取った場合は、結果を返し、javascript にレンダリングさせます。