cronなしでホスティングWebサーバーでPHPスクリプトを自動的に実行する方法はありますか?
-
05-07-2019 - |
質問
SMSアラートを毎日送信するスクリプトがありました。データベースからメッセージを取得して自動的に送信するようにしたいです。 cronなしでできますか。他の解決策はありますか。 Plzヘルプ
解決
webcron サービスを使用して、スクリプトをトリガーできます。
他のヒント
外部の AppEngine cron ジョブスケジューラを使用:使用google AppEngine 、無料です。外部の「タスク」その後、「コールバック」することができますあなたのPHPスクリプト。
あなたのマシンでローカルの cron
を使用することの何が問題なのか確認できませんが、アクセスがブロックされているのは別です。
簡単に言えば、何らかのスケジューラーまたはcronを使用しないとphpスクリプトを実行できません...
いくつかのオプションがあります:
-
cronの動作をエミュレートします。PHPコードで、送信がスケジュールされている時刻にページがロードされたかどうかを確認します。メッセージがまだ送信されていない場合は、送信するスクリプトをロードしますバックグラウンドでメッセージを送信し、送信済みのフラグを立てます。
-
他の人が示唆しているように、http経由でURLを取得して(たとえばwgetを使用して)サーバーでスクリプトを実行するcronjobを別の場所にセットアップします
別の場所でcronタスクを設定し、アラートを送信するスクリプトを要求します。
スクリプトを含めて、ホームページ/ログインページなどにアクセスするたびにスクリプトを実行できます。 timeというmysqlのテーブルを設定します。 ページがアクセスされるたびにデータベースを照会します。 if(時間引数){スクリプトをバックグラウンドで実行し、DBの新しい時間を更新します}
する必要があるのは、SMSメールを送信する頻度を設定することだけです。 例 1日1回 データベース行" time"日付があります。日付は24時間前と言うことができます。 db行が" time"の場合今日から1日1日を引いた値以下である場合、スクリプトを実行します。これにより、スクリプトが1日に1回実行されます。
欠点->誰かが少なくとも1日に1回サイトにアクセスする必要があります。
ウェブサイトのURLは何ですか?何してるの?
easycron.com のようなサードパーティのwebcronを使用します。
サーバーでcronジョブを設定できない場合は、スクリプトを実行する必要があるときにリクエストを行うように、アクセスできるクライアント(コンピューターなど)でcronジョブを設定します。
それは最適ではありませんが、スケジューラを使用せずにできることはこれです。
- 各ページのヘッダーファイルを設定します。
- ヘッダーファイル内に、実行する関数/プロシージャを配置します。
- プロシージャの実行に必要な時間以上であり、まだ実行されていないことを確認するifステートメントを作成します。
これの欠点は次のとおりです:
- 保証されたサービス時間はありません。
- ウェブサイトがヒットしない場合、ウィンドウが完全に見逃される可能性があります。
- 少なくとも3つの関数呼び出しをページに追加します。このプロセスが今日完了したかどうかを確認するために必要な関数呼び出しは言うまでもなく、MySQLサーバーまたはフラットファイルへの呼び出しが含まれる場合があります...
Windowsのタスクスケジューラを使用して、以前にcronにアクセスできなかったサーバーでスクリプトをスケジュールしましたが、うまくいきました。
これはまだcronを必要とするため、これは最良の答えではありませんどこか、しかし、あなたのサイトのページにアクセスするために、例えば自宅のコンピューターのような( curl
や wget
などのライブラリを使用して)アクションをトリガーします。