请选择 进入手机版 | 继续访问电脑版

REDCap club

查看: 56|回复: 2

Linux下关于配置REDCap的计划任务(cronjob)问题

[复制链接]

2

主题

7

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2022-8-21 01:26:08 | 显示全部楼层 |阅读模式
本帖最后由 BLDPD 于 2022-8-21 01:27 编辑

我的环境是 REDCap 12.5.6 · PHP 7.4.30 (Linux/Unix OS) · MySQL 5.7.37
服务器系统是乌班图20.4
经过测试,PHP8.0+的版本会直接在安装时候cronjob提示崩溃(PHP原因)。
经过降级PHP到7.4,安装时候cronjob不会直接报错,但是会提示计划任务未运行。
如下:
错误:计划任务未运行
你的REDCap似乎没有设置计划任务或者没有按恰当的运行周期运行。请参阅控制中心里的计划任务页面进行细节设置。此计划任务相当重要并且必须常规运行在一个指定周期以保证后台任务被执行。

转至计划任务页面



点击转至页面提示:


设置REDCap的计划任务
REDCap要求计划任务必须在REDCap服务器上设置,因为web服务器每天自始至终都会以一个固定周期执行计划任务。计划任务程序可以执行任何必要的任务并作为异步的后台进程运行。下面的步骤将指导你完成计划任务的设置以及处理可能出现的错误:
诊断核查
当前服务器类型(Windows或Linux/Unix): Linux/Unix
最后一次计划任务运行时间是: 2022/08/20 23:06
计划任务状态 没有正常运行 (计划任务在过去一小时没有运行。请检查。)

如何使用Crontab安排Linux/Unix的REDCap计划任务
打开Telnet/SSH 任务在Linux/Unix服务器上,把文本框里的文字加到CronTab文件(使用“crontab -e” 打开rontab文件进行编辑)。如果你在启动“crontab -e ”收到拒绝访问的提示,你需要切换到系统管理员身份(例如 “sudo crontab -e”)。 如果要列出当前计划任务,请使用“crontab -l”。
注意: 不能确定PHP可执行文件在服务器上的路径,你需要核实路径并替换 "/???/???/php" 文本框里的真实路径。
添加下面两行到你的CronTab 文件:

[url=]# REDCap Cron Job (runs every minute)
[/url]

* * * * * /???/???/php /www/wwwroot/地址/redcap/cron.php > /dev/null
在浏览器中触发REDCap的计划任务
如果你不能在web服务器上设立REDCap的cron作业,通过您的Web浏览器你也可以很容易地触发调度作业。要使用Web浏览器触发调度作业,请前往 http://地址/redcap/cron.php

我在点击上述浏览器连接后发现cronjob运转正常,但是会在2小时后再次失效,继续提示如下:


错误:计划任务未运行
你的REDCap似乎没有设置计划任务或者没有按恰当的运行周期运行。请参阅控制中心里的计划任务页面进行细节设置。此计划任务相当重要并且必须常规运行在一个指定周期以保证后台任务被执行。

转至计划任务页面


不知道大家对这个设置有什么解决办法?


回复

使用道具 举报

19

主题

46

帖子

328

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
328
发表于 2022-9-7 19:29:39 | 显示全部楼层

  1. 打开Telnet/SSH 任务在Linux/Unix服务器上,把文本框里的文字加到CronTab文件(使用“crontab -e” 打开rontab文件进行编辑)。如果你在启动“crontab -e ”收到拒绝访问的提示,你需要切换到系统管理员身份(例如 “sudo crontab -e”)。 如果要列出当前计划任务,请使用“crontab -l”。
  2. 注意: 不能确定PHP可执行文件在服务器上的路径,你需要核实路径并替换 "/???/???/php" 文本框里的真实路径。
  3. 添加下面两行到你的CronTab 文件:
  4. [url=]# REDCap Cron Job (runs every minute)
  5. [/url]
  6. * * * * * /???/???/php /www/wwwroot/地址/redcap/cron.php > /dev/null
复制代码
你需要按照这段文字,编辑计划任务文件(crontab)先检查你的PHP安装文件的绝对目录,找到php所在位置
通过SSH远程登陆进入终端界面,crontab -e 编辑任务文件表,添加
[url=]# REDCap Cron Job (runs every minute)[/url]
* * * * * /???/???/php /www/wwwroot/地址/redcap/cron.php > /dev/null
注意,此处的/???/???需要替换为php可执行文件所在的目录,文件夹深度一般不止2层,比如:/www/bt/server/php74/bin/php(空格)/www/wwwroot/redcap-site/cron.php > /dev/null

回复

使用道具 举报

2

主题

7

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2022-9-12 22:59:33 | 显示全部楼层
CJLIU 发表于 2022-9-7 19:29
你需要按照这段文字,编辑计划任务文件(crontab)先检查你的PHP安装文件的绝对目录,找到php所在位置
通过 ...

谢谢刘教授,我已经根据您的建议解决这个问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|沪ICP备2020038279号-3|REDCap CLUB

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表