在创建cron作业脚本时需要帮助。基本上,我想获取下一个计划的项目并通过ffmpeg运行它以进行流式处理。这将是mysql查询(我正在使用PHP变量来指示应该去哪里-我实际上不知道变量在cron作业中如何工作):

SELECT show.file FROM show, schedule
WHERE channel = 1 AND start_time <= $current_time;


这将是ffmpeg命令:

ffmpeg -re -i $file http://127.0.0.1:8090/feed.ffm


我将如何创建cron作业来执行这些命令?

最佳答案

首先,恕我直言,您不需要将当前时间传递给select语句,只需使用CURRENT_TIME

SELECT `show.file`
  FROM show, schedule
 WHERE channel = 1 AND start_time <= CURRENT_TIME;


根据实际表的DDL,您可能需要进行一些转换才能正确比较时间值。

假设查询正确并且仅返回一个文件名,则可以使用mysql执行查询,将结果输出到预定义文件中,并使用&&链接ffmpeg命令

mysql -u user -ppassword dbname -sN -e \
 "SELECT show.file \
 FROM show, schedule \
 WHERE channel = 1 AND start_time <= CURRENT_TIME" > /tmp/cur_show_file && \
 ffmpeg -re -i /tmp/cur_show_file http://127.0.0.1:8090/feed.ffm

关于mysql - 使用数据库结果进行Cron作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15307313/

10-14 23:02