在 Magnolia 上,我创建了一个 Groovy 脚本来删除未使用的用户。 当我直接从“DEV > Groovy 脚本”界面(在管理中心)运行 Groovy 脚本时,它工作得很好。
现在,我正在尝试安排该脚本的执行。 所以我配置了一个命令和一个调度程序。
命令: 调度程序>配置>命令>默认>groovyDeleteUsers 具有属性: - 类 = my.commandes.GroovyDeleteAllPublicUsersCommand
调度程序: 调度程序>配置>作业>删除UsersJob 具有属性:
- active=true
- 目录=默认
- 命令=groovyDeleteUsers
- cron=0 0 8 * * * *
以下是我的 Groovy 脚本的结构:
package my.commands;
import info.magnolia.commands.*;
import info.magnolia.context.MgnlContext;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
public class GroovyDeleteAllPublicUsersCommand extends MgnlCommand {
public boolean execute(Context ctx) {
....
}
}
问题是调度程序作业无法看到我的命令。
Magnolia Can't find command [groovyDeleteUsers] for job in catalog [{default}]
我已经尝试了 JCR 查询:“select * from nt:base where jcr:path like '%/commands/%'”(如文档中指定),结果中包含我新创建的命令。
[编辑] 问题似乎来自命令。
当我尝试使用现有类定义命令时,如 info.magnolia.commands.impl.ImportCommand
该命令已由应用程序很好地注册。
但是当我尝试使用我的 my.commandes.GroovyDeleteAllPublicUsersCommand
该应用程序没有注册我新创建的命令。
那么你有什么想法吗?
感谢您的帮助, 问候, 吉米
最佳答案
您的问题与设置无关,设置完全正确,只是命令位置不正确。尝试将命令定义放在模块下而不是配置下,例如将其放入 ui-admincentral/commands
编辑:显然,另一个问题是关于 groovy 命令与 java 命令的。
有关更多信息和示例:this页面应该足够了。
干杯,
关于groovy - Magnolia 安排 Groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50491415/