当前位置: 首页 > 知识库问答 >
问题:

如何使用CRON作业在Joomla DB上运行此查询?

东方海
2023-03-14

我已经创建了这些查询(并在PhpMyAdmin中测试了它们),现在需要在我的Joomla上运行它们! 使用CRON作业调用。php文件。

DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
    SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
    JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
    JOIN j25_acym_user_has_list AUL ON  AUL.user_id = AU.id
    where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0) 
) as P
);
INSERT INTO j25_virtuemart_vmuser_shoppergroups (virtuemart_user_id, virtuemart_shoppergroup_id) 
SELECT * FROM( SELECT cms_id, '10'
 FROM j25_acym_user_has_list AUL 
left JOIN j25_acym_user AU ON  AUL.user_id = AU.id
left JOIN j25_virtuemart_vmuser_shoppergroups SG  on AU.cms_id = SG.virtuemart_user_id
where SG.virtuemart_shoppergroup_id IS NULL AND (AUL.list_id = 13 AND AUL.status=1)) as foo
ON duplicate KEY update
virtuemart_shoppergroup_id=virtuemart_shoppergroup_id;

如何将其转换成一个(或2个)可以使用wget调用的工作PHP文件?

共有1个答案

栾钟展
2023-03-14

当您通过cron作业运行查询时,应该包含joomla文件framework.php和defines.php,请尝试以下代码

define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . DS . '');
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php'); 
$db     = JFactory::getDbo();
$query = 'DELETE FROM j25_virtuemart_vmuser_shoppergroups WHERE id IN(
SELECT * FROM (
    SELECT SG.id FROM j25_virtuemart_vmuser_shoppergroups SG
    JOIN j25_acym_user AU on AU.cms_id = SG.virtuemart_user_id
    JOIN j25_acym_user_has_list AUL ON  AUL.user_id = AU.id
    where SG.virtuemart_shoppergroup_id = 10 AND (AUL.list_id = 13 AND AUL.status=0) 
) as P
)';
$db->setQuery($query);
$db->query();
 类似资料:
  • 我想基于cron表达式运行一个作业,但它应该在rest调用后从DB中查找cron表达式。 一旦rest api被命中,它应该等待cron表达式,我们可以从数据库或任何方法获得它,然后它应该在指定的时间启动。 它的工作方式与普通的方法调用类似。

  • 问题内容: 如何检查计划的Quartz Cron作业是否正在运行?是否有任何API可以进行检查? 问题答案: scheduler.getCurrentlyExecutingJobs()在大多数情况下应该可以工作。但是请记住不要在Job类中使用它,因为它使用ExecutingJobsManager(a JobListener)将正在运行的作业放到HashMap中,该HashMap在作业类之前运行,因

  • 如何检查计划的Quartz cron作业是否正在运行?是否有API进行检查?

  • 本文向大家介绍如何在Linux系统上每天运行Cron作业,包括了如何在Linux系统上每天运行Cron作业的使用技巧和注意事项,需要的朋友参考一下 本文将教您如何安排玉米作业,以便每天在特定时间执行脚本,命令或Shell脚本。作为系统管理员,我们知道在后台自动运行例行维护作业的重要性。Linux corn实用程序将帮助我们维护这些作业以在后台运行。 Cron作业的一般语法 要查看机器上存在的cro

  • 问题内容: 我想清除所有超过1周的SQL数据库,我想每晚进行一次。所以,我要安排一份工作。如何查询mySQL,而不必每次都手动输入密码? PHP中的查询如下: 有没有办法将其作为shell脚本运行?如果没有,有没有一种方法可以使cron运行php文件? 问题答案: 尝试创建如下所示的shell脚本: 然后可以将其添加到cron

  • 问题内容: 我试图在docker容器中运行cron作业 但对我没有用 我的容器只有cron.daily和cron.weekly文件 crontab,cron.d,cron.hourly …在我的容器中不存在 crontab -e也无法正常工作 我的容器使用/ bin / bash运行 问题答案: 这是我运行我的cron容器之一的方法。 Dockerfile: crontab.txt entry.s

  • 问题内容: 我正在尝试在调用shell脚本的docker容器中运行cronjob。 昨天我一直在网上搜索和堆栈溢出,但是我找不到真正可行的解决方案。 我怎样才能做到这一点? 编辑: 我已经创建了一个(带注释的)github存储库,上面有一个工作的docker cron容器,该容器以给定的时间间隔调用shell脚本。 问题答案: 您可以将crontab复制到映像中,以使从该映像启动的容器运行该作业。

  • 我创建了一个(有注释的)github存储库,其中有一个工作的docker cron容器,它以给定的时间间隔调用一个shell脚本。