对于 iOS 推送通知服务器,我正在实现一个 Web 服务,用于检查网络上特定价格的提要。
因此,我需要我的 PHP 继续检查价格(每 20 秒左右)并检查值。
我想知道(原谅我今天刚开始使用 PHP 的无知)人们这样做的方式是 cronjob 吗?或者是否有一些特殊的方法来触发一个运行直到它被杀死并重复任务的 php 脚本?
谢谢!约翰
对于 iOS 推送通知服务器,我正在实现一个 Web 服务,用于检查网络上特定价格的提要。
因此,我需要我的 PHP 继续检查价格(每 20 秒左右)并检查值。
我想知道(原谅我今天刚开始使用 PHP 的无知)人们这样做的方式是 cronjob 吗?或者是否有一些特殊的方法来触发一个运行直到它被杀死并重复任务的 php 脚本?
谢谢!约翰
这可以通过在您的服务器上设置一个 cron 作业来实现。
如果 PHP 是您的首选路线,则可以将如下所示的简单脚本设置为在后台无限期运行(将此命名为 grabber.php):
#!/usr/bin/php
<?php
do {
// Grab the data from your URL
$data = file_get_contents("http://www.example.com/data.source");
// Write the data out somewhere so your push notifications script can read it
file_put_contents("/path/to/shared/data.store", $data);
// Wait and do it all over again
sleep(20);
} while (true);
并启动它(假设您使用的是 unixy 操作系统):
$ chmod u+x grabber.php
$ ./grabber.php > /path/to/a/file/logging/script/output.log 2>&1 &
&
最后发送进程在后台运行。
然而,PHP 可能是矫枉过正,也许一个简单的 bash 脚本会更好:
#!/bin/bash
# This downloads data and writes to a file ('data-file')
doWork () {
data=$(curl -L http://www.example.com/data.source)
echo $data > data-file
sleep 20
doWork
}
# Start working
doWork
$ chmod u+x grabber.sh
$ ./grabber.sh > /path/to/logger.log 2>&1 &