次のコマンドセットがあります。
docker exec -u www-data bin/console api:execute --object=Account;
docker exec -u www-data bin/console api:execute --object=AgreementType;
docker exec -u www-data bin/console api:execute --object=CFProgramLevel;
docker exec -u www-data bin/console api:execute --object=Product;
docker exec -u www-data bin/console api:execute --object=Customer;
docker exec -u www-data bin/console api:execute --object=Distributor;
上記のコマンドはシーケンスなので、表示される順序で実行する必要があります。
私は何を達成すべきですか?
- 一度に1つのジョブのみを実行
- 順序を尊重します。たとえば、
Account
最初に実行する必要があるAgreementType
、AgreementType
最初に実行する必要があるCFProgramLevel
などを意味します。 - 毎時間すべてのシーケンスを実行
cronjobを使用しようとしていますが、どのように実装するのかわかりません。誰でも私に答えることができますか?
ベストアンサー1
コマンドをスクリプトに入れ、cron を使用してスクリプトをスケジュールします。
スクリプトrunstuff.sh
:
#!/bin/sh
docker exec -u www-data bin/console api:execute --object=Account
docker exec -u www-data bin/console api:execute --object=AgreementType
docker exec -u www-data bin/console api:execute --object=CFProgramLevel
docker exec -u www-data bin/console api:execute --object=Product
docker exec -u www-data bin/console api:execute --object=Customer
docker exec -u www-data bin/console api:execute --object=Distributor
クローンタブ:
0 * * * * /path/to/runstuff.sh
または、
@hourly /path/to/runstuff.sh
あなたのクローンが理解している場合@hourly
(確認man 5 crontab
)。
これにより、既存のcronjobを編集せずに(必要な場合)スクリプトを変更できます。また、Docker呼び出しが正しい順序で実行され、ジョブのすべての処理が1つの場所(スクリプト)に収集されることを保証します。