昨今の仕事に非常に理解し、それだけであなたがたの使用を知らないcrond前に、crondを使用していますが、これは多くのケース検討する必要がある、それはまた、crondの話をするには、以下の問題について以下、crond何の深い理解です。
これが実行されていない場合は、ジョブで指定crond、次の実行サイクルがどうなるのか、この時、周りに再び来ましたの?
:ジョブが完了していない場合、次の実行サイクルは、ジョブが繰り返されることを行った実行します。以下は、私が見ている結果、psコマンドで表示できます。
[root@localhost etc]# ps -ef | grep Test root 48460 73018 0 18:34 pts/0 00:00:00 grep --color=auto Test root 98880 98878 0 18:06 ? 00:00:00 php Test.php root 101631 101629 0 18:07 ? 00:00:00 php Test.php root 104427 104425 0 18:08 ? 00:00:00 php Test.php
ジョブがそれを強制重複crondを避けるためにどのように?
参照することができます実行サイクルの終了を繰り返し解決しないのcrontabこのブログの記事は三つの方法について話しましたが(ミューテックスを使用)、私は解決策がレイズして行うことができる仕事かどうか、擬似BOOLマーク$を設定することである持っていましたコードは以下の通りであります:
//Test.php 文件的主要内容 $redis = new Redis(); $keyExist = $redis->exists('job_can_start'); if (!$keyExist) { $redis->set('job_can_start',1); $canExcute = 1; } else { $canExcute = $redis->get('job_can_start'); } if ($canExcute){ $redis->set('job_can_start', 0); //下面写具体的job ………… $redis->set('job_can_start', 1); }
サービスがオフcrond、それを実行する仕事に影響を与えるのだろうか?
限り、私はテストを知っているように、プロセスcrondサービスをシャットダウン実行中のジョブには影響しません時にジョブ、プロセスは、ジョブの実行の実装後に自動的に終了します。
次のようにテストプロセスは、次のとおりです。
- 仕事を書き込み、その後、タスクスケジューラを使用してタスクを実行する(実行時間が設定したことをタスクに注意を払うようにしたいタスクの実行の期間よりもはるかに短いので、効果は明らかである、特定の使用を参照してくださいどのようにcrond https://www.cnblogs.com/をzhuchenglin / P- / 8758444.html)。
- 今回は数サイクル後に期待されているスクリプトの実行プロセスの数のコマンドpsの外観を使用して、スクリプトプロセスの実行の数を見ては、その後、以前に表示した割合の数が大幅に増加しなければなりません
- crondサービスがオフになって、すぐにプロセス数が、この時点でのプロセスの数はほとんど変化する必要があります参照して、数サイクルを減少させなければならない後プロセスの数を表示します。
crond動作原理
実際には、いくつかの質問は、あなたが、Linuxのcronジョブの実行上記の原理を理解すれば、それは非常に簡単にする必要があります。ここで私はブログをお勧めします原則のCron実行ワークフローcrondの話、ジュニアパートナーの関心は慎重に調べる研究することができます。
:転載については、ソース明記してくださいhttps://www.cnblogs.com/zhuchenglin/p/11514777.htmlを