在我的扩展程序(插件)中,我希望每隔一段时间运行一些SQL脚本(一些数据库清理操作);每天一次或每周一次可能就足够了。不需要完全在该时间间隔内,如果有人访问该站点就足以被触发。
在一个理想的世界中,这些可能是由cron脚本运行的,但并非每个使用我的扩展程序的人都可以访问其服务器上的crontab,因此解决方案需要在没有cronjobs的情况下运行。
搜索“joomla cronjob”及其组合我还没有找到Joomla框架中已有的任何内容(只有其他扩展名,如JPrc Cronjobs;但它需要已经存在于框架中或者包括在我的扩展中。)
考虑自己实现它(因为我的插件已经在每个站点调用上运行),想到的直接解决方案是在执行操作时存储时间戳,然后在下一个操作运行时检查是否有适当的间隔已经过去了。
但是,我会在哪里存储时间戳?一个单独的表似乎完全矫枉过正(尽管它可能是最干净的解决方案)。 Joomla扩展可能有一些简单的键值存储吗?我也没有看到这样的事情。
所以,我的问题归结为:
答案 0 :(得分:1)
由于您的代码在每次调用页面时运行,因此您的第二个解决方案实现起来会更加简单。您可以使用内置扩展参数来存储特定于扩展的值。
首先,看看这里: https://stackoverflow.com/a/13221472/1867759
此解决方案适合您。唯一的区别是,由于您已经在插件中,因此可以通过$this->params
访问参数,而不是从JComponentHelper
调用参数。
希望这有帮助!