問題タブ [laravel-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
354 参照

php - Laravel 5.3 スケジューラーは Windows で一度実行され、それ以上の処理なしで終了します

OS: Windows 8.1

Laravel バージョン: 5.3.15

こんにちは、

Laravel のスケジューラーを自分のマシンで適切に実行し、実際に動作していることを示す何らかの出力を確認できる方法でSTAY RUNNINGを取得するのに少し問題があります。実行するたびにphp artisan schedule:run、リストされているコマンドを 1 回呼び出してから終了します。繰り返しません。以下の試行例:

コード:

ここに画像の説明を入力

スケジューラを実行しようとしたときの結果:

ここに画像の説明を入力

私が試したこと:

以下のリンクから提案された複数の修正を試しましたが、実際にはスタックオーバーフロー全体で参照されているものもあります。Kryptonit3 によって以下のリンクで提案されているように、バッチ ファイルの追加、システム veriables などでの php のパスの設定などを含みます。

https://laracasts.com/discuss/channels/general-discussion/running-schedulerun-on-windows

ただし、何も機能しません。「Windows タスク スケジューラ」ツールでも、一度だけ実行され、CLI でそれ以降の処理を終了してから、ウィンドウを閉じます。このスケジューラがバックグラウンドで無期限に実行されているという実際の兆候はありません (キューのないバックグラウンド ジョブのようなものです)。

質問:

1 - 何も表示されない場合 ("I am Scheduled" がエコーされます)、これが実際に機能しているかどうかはどうすればわかりますか?

2 - このコマンドを実行しようとすると、一度正常に完了した後に終了するのはなぜですか。

3 - 私の Laravel バージョンphp artisan schedule:runでは、CLI または Windows タスク スケジューラで使用しようとすると、スケジューラが永続的に実行されないことがありますか?

4 - ここで主に達成しようとしているのは、システムが 1 分ごとに 1 つの DB テーブルのフィールドをスキャンすることです。どうすればこれを達成できますか?

5 - どなたかこの件について説明をお願いできますか? または、最初の実行後に終了することなく、このことを実際に無期限に実行できるように、正しい方向に向けてください。

注:私は Laravel Forge やその他の外部サービスを非常に単純なことに使用したくありません。それはやり過ぎで、私は不必要だと思います。

0 投票する
1 に答える
570 参照

php - ロジックなしでカスタムタイムスタンプフィールドを更新するlaravelの雄弁なクエリビルダー

と というテーブルに 2 つの列がありexpired(boolean)ますexpire_date(timestamp)。foreach を使用しeveryMinute()て列の値を更新しているときに、クーポンの有効期限が切れているかどうかを確認するスケジューラを実行しています。expired私はこれが奇妙だと思った、または参照渡しのものを台無しにしている可能性があります..ここにコードがあります

これが結果です。

更新前DB

ここに画像の説明を入力

php artisan schedule:runコマンド実行後のDB

ここに画像の説明を入力

expire_date が今日の日付で更新された理由を誰か教えてもらえますか?

0 投票する
1 に答える
1727 参照

laravel-5 - Laravel スケジュール:実行が機能しない

Laravel スケジュール コマンドを使用して、メールの送信とメールの取得のためのバックグラウンド プロセスを実行しようとしています。artisan を使用してこれらのコマンドを個別に実行すると、すべて実行されますが、これらのコマンドを実行するために shcedule:run コマンドを実行しようとすると、「スケジュールされたコマンドを実行する準備ができていません」と表示されます。

答えを探してみましたが、何もうまくいきませんでした。そこで、簡単なコマンドを実行して出力を確認することで問題を修正しようとしました。以下は私のkernal.phpです

schedule:run を実行すると、この出力が表示されます。

しかし、schedule() 関数で dd() を削除すると、出力は次のようになります。

スケジュールされたコマンドは実行する準備ができていません。

誰かが私を助けて、私が間違っていることを教えてもらえますか?

0 投票する
1 に答える
1043 参照

laravel - Cronジョブを完全に実行するのに問題があります

Laravel/Lumen を使用しています。SMS を送信する簡単なジョブをセットアップしました。

コントローラーにレコードが保存されるたびに、ジョブをディスパッチします。

これで、kernel.php に次の設定ができました。

私の cPanel には、次の cron ジョブが設定されています。

上記のコマンドは、毎分実行するように設定されています。

問題 この設定がうまくいきません。Bluehost VPS では、サーバーが何度もクラッシュし、再起動を余儀なくされました。どうやらメモリを大量に消費していたようで、その理由がわかりません。サポートも役に立ちませんでした。はっきりさせておきますが、うまくいきましたが、サーバーが少なくとも 1 日に 2 回クラッシュしました。

それで、それが私のホスティングと関係があると思って、別の場所(SiteGround)で別のホスティングを購入しました。現在、cronを機能させることさえできません。cron が実行されるたびに、これが私のメールに送信されます。

今、私はこれを引き起こしているのか、それを修正する方法がわかりません。ドキュメントのすべての指示に従っていると思いますが、ここで何が間違っているのかわかりません。私は調査を行い、両方のホスティング会社のサポートに連絡しましたが、それでも...

これがサポートからの最後のメッセージでした。

cron を数回実行しようとしましたが、実行するスケジュールされたコマンドがありません。

また、制限をもう一度増やしました。スクリプトの実行に 300 秒を設定し、memory_limit を 2048MB に設定しました。

もう一度お試しください。サポートが必要な場合は、お気軽にチケットを更新してください。

ルーメンとジョブに何か問題がありますか? ここで何が起こっているのか、Laravel 5.1でコマンドを正常に実行しました。

または、cron 経由で通常の PHP を使用してこのスクリプトを実行できる、より簡単で効率的な方法がある場合は、その方法を教えてください。

0 投票する
1 に答える
903 参照

laravel - データベースからLaravelスケジューラーの時刻を設定する

私は Laravel 5.2 アプリケーションを持っています。現在、スケジューラを使用して 30 分ごとにスクリプトを実行しています。しかし、その時間をデータベースから取得できるかどうか疑問に思っています.管理者ユーザーがWebページからその時間を設定したいのですが、データベースにフィールドがあります. しかし、スケジューラがデータベースからその時間を更新できるかどうかはよくわかりません。それは可能ですか?

また、次のように設定しました: ->sendOutputTo("/var/www/html/laravelProject/public/output")

出力をoutputという名前のファイルに保存しますが、cronが実行されても機能していないようです。cronログファイルを確認したところ、MTAがインストールされていないことが示されているだけですが、しばらくはしたくありません電子メールを送信するには、出力をファイルに保存したいだけなので、そこに何が欠けていますか?

0 投票する
1 に答える
2560 参照

laravel - Laravel Cronが2回実行されています

laravelを使用してcronを実行しています。問題は、すべてのコマンドが 2 回実行されていることです。端末にps -Aを追加すると、2 つのエントリが表示されます。

laravel にこのエントリがあります:

何が問題なのですか?

0 投票する
1 に答える
2033 参照

php - 本番サーバーでの Laravel スケジューラーのセットアップ (Inmotion Hosting)

laravelスケジューラのcronの書き方はホスティングごとに異なるため、この場合ドキュメントは役に立たないことに気づきました。

以前のホスト (siteground) で使用したのと同じコードが、現在のホスト (inmotion) では機能していないようです。

CPanel から設定したスケジューラを実行する cron は動作しているようです。

私のcronが実行されるたびにこのメールを受け取るので、うまくいくようです:

現在、上記のスクリプトは実行されていないようで、サーバー全体がクラッシュするまでプロセスがスタックしてメモリを消費します。

だから私はここでかなり混乱しています。なぜphp -q /home/xxxxx/xxxxx/artisan schedule:run実行するのですが、どういうわけか私のアプリは実行できません/usr/bin/php -q /home/xxxxx/xxxxx/artisan {command}

php-cli私はそれをグーグルで検索し、代わりに使用する場所をいくつか提案しましたphp -qが、php-cliでcommand not foundエラーが発生しました。

この件についてサポートに問い合わせたところ、次のような回答がありました。

php-cli は php コマンドライン インターフェイスのコマンドではないため、別のホストでそのコマンドをどのように実行できたのかはわかりません。残念ながら、これは有効なコマンドではないため、このコマンドを実行して何を達成しようとしているのか、私にはわかりません。

php -q は php-cli を実行するオプションであり、cron に使用する必要があります。ただし、実行しているファイルのコーディングが正しい場合にのみ正しく実行されます。

私はこれを2日間使用しています。私の質問は、laravelスケジューラーをエラーなしで実行するにはどうすればよいですか?インモーションサーバーなどにlaravel(ルーメン)アプリケーションをデプロイした経験がある人はいますか? 前もって感謝します。:)