私はプラグインを開発していて、cronタスク(cron_task_testとしましょう)を追加したいのですが、疑問があります。 15個のタスク(複数のプラグインまたはユーザー自身によってスケジュールされている可能性があります)が自分のタスク(cron_task_test)と同時に実行されるようにスケジュールされている場合最初の作業に1分以上かかった?それともすべてが相次いで解雇されますか
一言で言えば、cron_lockはどのように動作しますか?次々に実行される場合、すべてのタスクを1つずつ実行しているメインのcronスレッドがサーバーの最大実行時間制限(通常30秒)を超えないようにしますか?
自分のタスクの前に他のcronタスク(cron_task_test)がエラーをスローしたり制限時間を超えたりした場合はどうなりますか?
たとえば、12:00頃には3つのタスクが実行されます。
wp-cron
を使用した場合は、誰かがあなたのページを12:00に訪れたときに開始されます。 (2人のユーザーがまったく同じ瞬間にあなたのページにアクセスするとcronが2回起動してすべてが2回実行される可能性があるため、ここで小さな問題が発生します)。
しかし、誰かが私たちのページを12:00に開いてcronが始まります。スケジュールされたすべてのイベントを配列で取得します。 cronがビジーであることをtransientに設定し、call_user_func_array
を使用してforeach
ステートメント内のすべてのプロセスを開始します(これは、do_action
とほぼ同じですがarray
の場合)。
foreach
内のプロシージャー:
私のちょっとしたコツ:
ここにあなたは私の友人によって記事に書かれたいくつかの追加情報があります: wordpressのためのCronソリューション