Magnolia 安排 Groovy 脚本
Magnolia Schedule a Groovy Script
在 Magnolia 上,我创建了一个 Groovy 脚本来删除未使用的用户。
当我直接从 "DEV > Groovy scripts" 界面(在管理中心)运行 Groovy 脚本时,它工作正常。
现在,我正在尝试安排该脚本的执行。
所以我已经配置了一个命令和一个调度程序。
命令:
调度程序 > 配置 > 命令 > 默认 > groovyDeleteUsers
具有属性:
- class = my.commandes.GroovyDeleteAllPublicUsersCommand
调度器:
调度程序 > 配置 > 作业 > deleteUsersJob
具有属性:
- 活动=真
- 目录=默认值
- 命令=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
等现有 class 定义命令时,该命令已被应用程序很好地注册。
但是当我尝试使用 my.commandes.GroovyDeleteAllPublicUsersCommand
时,应用程序没有注册我新创建的命令。
那你有什么想法吗?
感谢您的帮助,
问候,
吉米
你的问题不是完全正确的设置,只是命令不在正确的位置。尝试将命令定义放在模块下而不是配置下,例如把它放到 ui-admincentral/commands
编辑:显然还有一个问题是关于 groovy 命令与 java 命令。
有关更多信息和示例:this 页应该足够了。
干杯,
据我所知目录名称在系统中必须是唯一的。 "default" 已存在于 ui-admincentral/commands。
在 Magnolia 上,我创建了一个 Groovy 脚本来删除未使用的用户。 当我直接从 "DEV > Groovy scripts" 界面(在管理中心)运行 Groovy 脚本时,它工作正常。
现在,我正在尝试安排该脚本的执行。 所以我已经配置了一个命令和一个调度程序。
命令: 调度程序 > 配置 > 命令 > 默认 > groovyDeleteUsers 具有属性: - class = my.commandes.GroovyDeleteAllPublicUsersCommand
调度器: 调度程序 > 配置 > 作业 > deleteUsersJob 具有属性:
- 活动=真
- 目录=默认值
- 命令=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
等现有 class 定义命令时,该命令已被应用程序很好地注册。
但是当我尝试使用 my.commandes.GroovyDeleteAllPublicUsersCommand
时,应用程序没有注册我新创建的命令。
那你有什么想法吗?
感谢您的帮助, 问候, 吉米
你的问题不是完全正确的设置,只是命令不在正确的位置。尝试将命令定义放在模块下而不是配置下,例如把它放到 ui-admincentral/commands
编辑:显然还有一个问题是关于 groovy 命令与 java 命令。
有关更多信息和示例:this 页应该足够了。
干杯,
据我所知目录名称在系统中必须是唯一的。 "default" 已存在于 ui-admincentral/commands。