17

プロジェクトでコンソール コマンドを作成します。毎日午後 7 時に実行したいのですが、symfony2 でどのように実行できますか? 基本的なphp cronジョブの方法またはsymfony2にはもっと便利なものがありますか? ありがとう

4

4 に答える 4

24

基本的なcronを使用できます。debianまたはubuntuでは、これを行うことができます。

crontab -e -u <username>

usernameは、コマンドを実行する必要があるユーザーの名前ですエディターでコマンドを追加します。これは、行がどのように見えるべきかについての良い説明です。Symfony2 コマンドの場合、次のようなものが機能するはずです。

* * * * * /usr/bin/php /var/www/symfony2/app/console your:command --option=123

これはyour:command --option=123毎分実行されます。


Windowsマシンでは、コマンドを使用できますacWindows 7ではデフォルトで使用できます。こちらのドキュメントをお読みください。次のようになります。

AT 00:00 /every:M,T,W,Th,F "php /var/www/symfony2/app/console your:command --option=123"

phpがグローバルに使用可能php.exeであること、またはファイルへのパスが正しいことを確認してください。

于 2013-08-27T09:38:38.247 に答える
2

You can just set a cron in crontab to execute your symfony command,

e.g.

0 19 * * * /var/www/symfony/app/console YOUR_COMMAND

于 2013-08-27T09:33:46.213 に答える
0

コマンドの実行に使用するユーザーに注意してください。ルートとして実行すると、ルートは Symfony キャッシュを所有し、サイトの HTTP 側を壊す可能性があります (たとえば、nginx は www-data ユーザーとして実行されるため)。

Docker では、Phusion ベース イメージの「setuser」メソッドを使用して、www-data ユーザーを強制しています。

于 2016-08-23T11:16:07.900 に答える
0

これは良い質問だと思います。

私は最近、タスクを実行するための cron ジョブにあらゆる種類の隠れた依存関係が存在する作業 (完全な MVC ではなく、ZF1 コンポーネントを使用) を行いました。コメントを追加し、ドキュメントを作成して、私の後に来る人にこれらの cron が存在することを警告するために、多くの時間を費やす必要がありました。 、何をしたか、どこに保管されたかなど。

その目的のためだけにZFコンポーネントがあるとは思いもしませんでしたが、コントローラーには多くの依存関係があります...

申し訳ありませんが、私はあなたの直接の質問には答えていません。

FWIW

于 2013-08-27T09:45:24.047 に答える