0

データベースをポーリングし、新しいエントリをチェックし、新しいエントリが見つかった場合は iOS デバイスにプッシュ通知を送信する PHP スクリプトがあります。

現在、phpスクリプトをセットアップしているので、ページを常に更新すると、必要なことが行われます。php または javascript の更新を設定して、ページを開いているだけにすることもできますが、リモート サーバーで作業していて、どのプログラムが開いているか、またはいつ再起動するかがわからない場合は、あまり効果的ではありません。

Windows サービスが私の問題に対する最良の解決策になると考えていますが、php スクリプトを Windows サービスにコンパイルする方法がわかりません。

誰か提案はありますか?最悪の場合、すべてを C# で記述して Windows サービスを作成することもできると思いますが、もっと簡単な方法があるはずです。

4

3 に答える 3

0

私の解決策は、プログラム FireDaemon を使用することでした (AlwaysUp は代替手段です)。PHP を手動で C:\PHP にインストールし、タスクを実行するように設定しました

C:\PHP\php.exe C:\pathtophp\file.php
于 2013-10-27T21:26:55.933 に答える
0

Windows の場合

nssm.exe (Non-Sucking Service Manager) を使用できます。ここからダウンロードしてください https://nssm.cc/

まず、データベースをポーリングする php スクリプトを作成します。

<?php

/// script.php

while(true){
   //do some stuff here

   sleep(5); //wait for 5 seconds 
}

?>

次に、コンソールで次のコマンドを入力します

nssm.exe install <service-name>

その後、Nssm サービスのインストーラーで

  1. パスフィールドに、あなたのパスを書きますphp.exe
  2. 起動ディレクトリに、phpスクリプトまたは作業ディレクトリの場所を書き込みます
  3. 最後に、引数フィールドに次のように記述します。script.php

次に、サービスのインストールボタンをクリックします。サービスを確認できるようになりましたwindows service

于 2019-10-23T23:58:37.897 に答える
0

Windows タスク スケジューラを使用してみてください。Unix システムの cron のように強力ではありませんが、役に立ちます。スケジュールされたタスクで PHP ファイルを実行する 方法 (Windows タスク スケジューラ)

Web からスクリプトにアクセスできる (必要な) 場合は、wget で Windows タスク スケジューラを使用できます。たとえば、次のパスで新しいタスクを作成します: wget.exe -O - -q -t 1 http://www.your- site.com/cron.php。もちろん、ローカル サーバーに wget をインストールする必要があります。

于 2013-10-26T22:25:39.787 に答える