タグ付けされた質問 「scheduling」

11
実行中のcronジョブの重複を防ぐ
cronジョブを1分ごとに実行するようにスケジュールしましたが、スクリプトが完了するまでに1分以上かかることがあり、ジョブがお互いに「積み重なって」起動したくない場合があります。これは並行性の問題だと思います。つまり、スクリプトの実行は相互に排他的である必要があります。 この問題を解決するために、スクリプトに特定のファイル( " lockfile.txt ")の存在を検索させ、存在する場合は存在touchしない場合は終了します。しかし、これはかなりお粗末なセマフォです!知っておくべきベストプラクティスはありますか?代わりにデーモンを作成する必要がありますか?
92 cron  scheduling 

1
Dockerコンテナーで許可されているCPUの数をカウントする
私の具体的なシナリオは次のとおりです。特定のcpusetでdockerコンテナーを起動します。 docker run --cpuset-cpus="0-2" # ... そのコンテナ内で、エントリポイントとしてシェルスクリプトを実行makeします。シェルスクリプトは、ある時点で実行されます。かなりの数の仕事(-j)がどうなるかを考えたいと思います。もちろん、割り当てられたCPUの数を環境に渡すこともできますが、自動的に検出する方法の方がはるかに望ましいでしょう。 現在のプロセスのを使用しtaskset -c -p $$たりcat /proc/self/status | grep Cpus_allowed_list取得したりできることCpus_allowedは知っていますが、許可されているCPUの実際の数を取得する方法はわかりません。これらのコマンドの出力を解析したり、Cpus_allowedマスクをいじったりすることは避けたいのですが、オプションがない場合はそれを行います。

4
同じタスクが既に実行されている場合、スケジュールされたタスクが実行されないようにするにはどうすればよいですか?
フォルダーに新しいファイルがあるかどうかを確認し、新しいファイルが存在する場合は、それらをサーバーにアップロードするphpスクリプトを作成しました。これらのファイルは非常に大きくなる可能性があります。このスクリプトを頻繁に実行したいと思います。たとえば、5分ごとにスケジュールされたタスクとして、ファイルができるだけ早くサーバーに移動されるようにします。ただし、スクリプトがファイルのアップロードを既に試みている場合、2番目のインスタンスが既にサーバーにアップロードされているファイルを上書きするのではないかと心配しているので、スクリプトを再度実行したくありません。 スクリプトが既に実行されていない場合、スクリプトをスケジュールされたタスクとして実行するにはどうすればよいですか?

5
Windowsタスクスケジューラが複数のインスタンスを起動しようとするのはなぜですか?
クラスター内にある1つのServer 2008 Webサーバー(R2ではない)で実行されるWindowsスケジュールタスクがいくつかあります。 最近、元のウェブサーバークラスターから新しいウェブサーバークラスター(サーバー2008-R2ではない)に移動しました。 Windowsタスクを実行する(クラスター内の)新しいWebサーバーは、私たちが信じている元のサーバーと同じように設定されています。 しかし、新しいWindowsサーバーでは、Windowsタスクスケジューラが各タスクを3回瞬時に開始したいように見えることがわかりました。 新しいタスクをキューに入れるオプションを設定すると、次のようになります。 イベントID 324タスクスケジューラは、タスク "\ Client Reporting"のインスタンス "{9a1a8411-b042-45ff-8e6b-89874df230d7}"をキューに入れ、インスタンス "{2bcc3df6-ea3b-4453-90c2-75b8b1946388}"が完了するとすぐにインスタンスを起動します。 既存のタスクを停止するオプションを設定すると、次のようになります。 イベントID 323タスクスケジューラは、新しいインスタンス「{4db66265-1f51-4ede-8535-ac7c3cb5c4c1}」を起動するために、タスク「\ Client Reporting」のインスタンス「{e685a910-b32b-414e-85fd-96bbe54314a2}」を停止しました。 チェックされた設定: タスクをオンデマンドで実行できるようにします。 スケジュールされた開始を逃した後、できるだけ早くタスクを実行します。 1時間以上実行している場合は、タスクを停止します。 要求されたときに実行中のタスクが終了しない場合は、強制的に停止します。 コンピューターがAC電源で動作している場合にのみ、タスクを開始します。 コンピューターがバッテリー電源に切り替わった場合は、タスクを停止します。 選択したオプション:タスクが既に実行されている場合-既存のインスタンスを停止します。 注:タスクをクラスター内のあるサーバーから別のサーバーに移動して、選択した特定のサーバーのタスクスケジューラが問題の原因であるかどうかを確認しました。同じ行動。 新しいサーバーの構築に関係があるのでしょうか? 別のサーバークラスターに非常によく似たタスクがセットアップされており、これらすべてを何度も起動しなくても問題なく動作します。これらのタスクをここでのタスクと比較すると、タスクスケジューラ内のオプションを通じて利用できる設定に関して、明らかに異なるものは何もないようです。 トリガー:タスクは毎日1時間に1回トリガーされ、この時間を超えると停止するようにスケジュールされます。 アクション:.batファイルを実行します。 これを引き起こしている可能性のあるもの/タスクがこの方法で複数回開始する原因となっているロジックを確認できる場所はどこですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.