Joomla扩展 - 相当于cronjob

时间:2013-12-31 18:27:14

标签: joomla joomla2.5 joomla3.2

在我的扩展程序(插件)中,我希望每隔一段时间运行一些SQL脚本(一些数据库清理操作);每天一次或每周一次可能就足够了。不需要完全在该时间间隔内,如果有人访问该站点就足以被触发。

在一个理想的世界中,这些可能是由cron脚本运行的,但并非每个使用我的扩展程序的人都可以访问其服务器上的crontab,因此解决方案需要在没有cronjobs的情况下运行。

搜索“joomla cronjob”及其组合我还没有找到Joomla框架中已有的任何内容(只有其他扩展名,如JPrc Cronjobs;但它需要已经存在于框架中或者包括在我的扩展中。)

考虑自己实现它(因为我的插件已经在每个站点调用上运行),想到的直接解决方案是在执行操作时存储时间戳,然后在下一个操作运行时检查是否有适当的间隔已经过去了。

但是,我会在哪里存储时间戳?一个单独的表似乎完全矫枉过正(尽管它可能是最干净的解决方案)。 Joomla扩展可能有一些简单的键值存储吗?我也没有看到这样的事情。

所以,我的问题归结为:

  • Joomla框架中是否有一个功能(使用Joomla> = 2.5),它会在一个间隔内每隔一次触发一些代码?
  • 或者,是否可以快速简单地存储单个键值对?

1 个答案:

答案 0 :(得分:1)

由于您的代码在每次调用页面时运行,因此您的第二个解决方案实现起来会更加简单。您可以使用内置扩展参数来存储特定于扩展的值。

首先,看看这里: https://stackoverflow.com/a/13221472/1867759

此解决方案适合您。唯一的区别是,由于您已经在插件中,因此可以通过$this->params访问参数,而不是从JComponentHelper调用参数。

希望这有帮助!