0

对于 iOS 推送通知服务器,我正在实现一个 Web 服务,用于检查网络上特定价格的提要。

因此,我需要我的 PHP 继续检查价格(每 20 秒左右)并检查值。

我想知道(原谅我今天刚开始使用 PHP 的无知)人们这样做的方式是 cronjob 吗?或者是否有一些特殊的方法来触发一个运行直到它被杀死并重复任务的 php 脚本?

谢谢!约翰

4

2 回答 2

1

这可以通过在您的服务器上设置一个 cron 作业来实现。

  1. 登录到您的虚拟主机,例如 cpanel 创建一个新的 cron 作业并将路径添加到您要运行的 php 文件。例如 php /home/[你的用户名]/public_html/rss/import_feeds.php。有一个字段,您可以在其中输入您希望 php 脚本运行的分钟数。

使用 CPanel 在 cron 作业中运行 PHP 文件

于 2013-08-13T20:13:49.347 回答
1

如果 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 &
于 2013-08-13T20:52:02.703 回答