2013-08-13 3 views
0

Для сервера уведомлений iOS Push я использую веб-службу, которая проверяет фид в сети по определенной цене.PHP Повторяющаяся операция

Поэтому мне нужно, чтобы мой PHP продолжал проверять цену (каждые 20 секунд или около того) и проверять значения.

Мне было интересно (простите мое невежество, с которым я только начинал с PHP сегодня), как люди делают это cronjob? Или есть какой-то особый способ запустить скрипт php, который запускается до тех пор, пока он не будет убит и не повторит задачу?

Спасибо! John

+1

минимальная частота хрон поминутная, в течение 20 секунд, я хотел бы написать демон. –

+0

- это то, как это делается? Нет простого способа непосредственно в PHP? – Woodstock

+0

его, вероятно, сделали 50 различных способов. но для этого интервала я так и сделаю. возможно, php не является подходящим языком для этого. –

ответ

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 & 

это & в конце посылает проц ss для запуска в фоновом режиме.

PHP, вероятно, слишком для этого, однако, может быть простой Баш скрипт будет лучше:

#!/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 & 
+0

Отличный материал! благодаря! Мне нужно, чтобы PHP настроил безопасное соединение с сервером уведомлений apple push и отправил строку json. сокеты и т. д. не могут использовать bash. – Woodstock

+0

Я на OS X, так что это UNIX, и это должно работать – Woodstock

1

Это возможно, создав задания cron на вашем сервере.

  1. Войдите в свой веб-хостинг, например cpanel, создайте новое задание cron и добавьте путь к файлу php, который вы хотите запустить. например, php/home/[ваше имя пользователя] /public_html/rss/import_feeds.php. Существует поле, в котором вы можете ввести количество минут, которые вы хотите запустить скрипт php.

Run a PHP file in a cron job using CPanel

Смежные вопросы