ある時点でのジョブキューの作成

ある時点でのジョブキューの作成

UNIXは、特定の時間に定期的に開始されるキューを作成し、その時間に順次実行されるキューにいくつかのタスクを徐々に追加する方法を提供しますか?

私はcronと知っていますがat

  • cronキューシステムがありません。
  • at順次タスクはサポートされていないようで、タスクリストは非常に不親切にリストされています。 (「すべてリスト」はジョブ番号と日付のみを出力し、単一ジョブに関する情報はジョブ全体を出力しますenv。)

私は次のことを想像しています。

$ create queue a at midnight
$ add "ffmpeg -i a.mkv a.mp4" to a
$ add "ffmpeg -i b.mkv b.mp4" to a
$ add "ffmpeg -i c.mkv c.mp4" to a

$ create queue b at noon
$ add "mysqldump ..." to b

$ list queue a
RUNNING  ffmpeg -i b.mkv b.mp4
NEXT     ffmpeg -i c.mkv c.mp4

$ mail
>N 1 Task Daemon Thu Sep 1 00:23 <user@localhost> ffmpeg -i a.mkv a.mp4

ちなみに実際に必要なのは、夜にCPU/時間がかかる作業をスケジュールすることです。このとき、ノートパソコンはドアが閉まっている部屋でファンの音が聞こえません(またはCPUが沸騰する熱を感じることはできません)。

ベストアンサー1

非難することもありますがat、使用すると所望の効果をある程度得ることができます。一括特徴。atコマンドにキューに単一の大文字名を指定すると、そのキュー内-q Mのすべてのコマンドは要求された時間にのみ実行されます。もしシステム負荷が0.8未満の場合、ジョブの開始間に60秒の間隔があります。

-l-bオプションとデーモンを使用してロードと間隔を変更できますatd。ジョブはサブミット順に実行され、atq -q M指定されたキューのジョブのみがリストされます。

おすすめ記事