Как планировать/содержимое очереди для публикации в будущем? Опубликовать в PHP?

У меня есть очень простой PHP script, который я использую для публикации интересных ссылок, которые я нахожу в фильтруемом списке на моем сайте, а также в моем rss-канале (который feedburner затем также чириканье при пинге).

Мне интересно, насколько сложно было бы добавить "очередь", в которой я мог бы сразу отправить несколько записей и запланировать будущее время/дату для каждого из них?

Подобно тому, что Twuffer делает для Twitter или Tumblr и Wordpress для записей в блогах.

Требуется ли выполнение заданий cron? Возможно, с моим PHP script написанием другого файла "drafts.txt", если это будущий пост, и запланированный cron, чтобы проверить, есть ли время/дата =, а затем записать его в другие файлы?

Я, очевидно, новичок с этим - но я был бы признателен за любую помощь! Спасибо!

Вот мой текущий маленький script:

<!--?php 
if($_POST['Submit']) 
{ 
$category = $_POST['category']; 
$linkurl = $_POST['linkurl']; 
$linkname = $_POST['linkname']; 
$description = $_POST['description']; 
$submittername = $_POST['submittername']; 
$submitterurl = $_POST['submitterurl']; 
$postdate = $_POST['postdate'];
// Remove slashes.
$description = stripslashes($description);
//the data for list.txt
$data = "
<li class='$category'-->
 <h3><a href="$linkurl" target="_blank">$linkname</a></h3>
 <p><b>$description</b></p> 
 <p><small>Submitted by: <a href="$submitterurl" target="_blank">$submittername</a><i> - $postdate</i></small></p>
"; 
$filename = "list.txt";
$fp = fopen( $filename,"r"); 
$OldData = fread($fp, 80000); 
fclose( $fp ); 
$New = "$data$OldData";
$fp = fopen( $filename,"w"); 
if(!$fp) die("Cannot write $filename .");
fwrite($fp, $New, 800000); 
fclose( $fp ); 
//the data for rss.php
$feeddata = "
<item>
 <title>Supplement: $linkname</title>
 $linkurl
 <description>$description</description>
</item>
"; 
$ffilename = "rss.txt";
$ff = fopen( $ffilename,"r"); 
$OldfeedData = fread($ff, 80000); 
fclose( $ff ); 
$New = "$feeddata$OldfeedData";
$ff = fopen( $ffilename,"w"); 
if(!$ff) die("Cannot write $ffilename .");
fwrite($ff, $New, 800000); 
fclose( $ff ); 
print("<h1>Success!</h1><a href="add.php">Add Another?</a>");
}
?>
2 ответа

Вот что я сделал (спасибо Альфреду за то, что задумался в правильном направлении):

  • Я добавил радиокнопки в моей форме, чтобы опубликовать "Сейчас" или "Позже" .
  • Выбор "Позже" показывает датупиксера, который передает datetime var в мой script, когда я хотел бы опубликовать статью.
  • В моем script, если выбрано "Сейчас", данные записываются непосредственно в файл .txt, как показано выше. Если выбрано "Позже" , данные записываются (с отметкой публикации) в MySQL db.
  • Я назначил задание cron для запуска другого php script каждые десять минут, чтобы записать любые данные с меткой времени, которая прошла в мой .txt файл и удалить запись из db.

Отлично работает!


Вы можете прочитать об этом более здесь Я думаю, но краткое резюме:

Используйте cron для выполнения заданий на регулярной расписание (например, запустить автоматическую ленту резервировать каждую рабочую ночь или генерировать конец месяца). Используйте для запуска когда-то в будущем. Используйте их для автоматизации повторяющиеся задачи!

Думаю, вы должны использовать at для планирования задач

Но вы также можете взглянуть на механизм приложений Google /cron, чтобы запланировать ваши задания бесплатно (щедрая квота). Он использует webhooks для автоматического выполнения задач и масштабирования.

licensed under cc by-sa 3.0 with attribution.