1

Cron マネージャーの代わりに、クライアントの実行中にトリガーされる Cron を実行する PHP サイトがあります。実行される Cron の 1 つは実行に数秒かかり、完了するまでクライアントとサーバー間の接続を開いたままにします。クライアントの実行中ではなく、サーバーから Cron を起動するように設定できることはわかっていますが、その形式に従わなくても可能かどうかを知りたいです。

では、PHP スクリプトはコマンドを Apache (またはそれがホストされているサーバー) に送信して、クライアントとサーバー間の接続を閉じることができますが、機能を継続できますか (つまり、終了せずに)?

4

3 に答える 3

1

shellPHPバイナリを呼び出すために使用できます...例:

shell("php -f /path/to/cronfile.php > /dev/null 2>/dev/null &");これは実行され、戻りを待ちません。

PHP での非同期シェル exec を参照してください。

于 2013-07-02T17:00:03.323 に答える
-1

通常、実行には 2 つの形式があります。

クライアント側: クライアントはページに残り、ページは完了するまで指定されたコマンドを処理し続けます。

サーバー側: クライアントはページに移動します & データベースで切り替えを行います:

  UPDATE Table SET PendinCron=1 WHERE IdentiferCol=$IdentiferData

次に、Cronjob が X 間隔で実行され、PendinCronが 1 に等しい場合にのみ処理されます。Cron は必要なタスクを実行しません。

于 2013-07-02T17:00:33.283 に答える