如何使用 Quartz 在作业中获取不可序列化的变量?
How to get a non-serializable variable on a job using Quartz?
我正在尝试在我的工作中访问一个不可序列化的对象,但到目前为止我没有运气。这是我的代码到目前为止的样子
> public class ExecuteJob extends AbstractJob {
public static String REQUEST_NAME = "request";
private Request request;
@Autowired
MyObject myObject;
@Override
public void executeInternal(JobExecutionContext context) {
JobDataMap data = context.getJobDetail().getJobDataMap();
request = (Request) data.get(REQUEST_NAME);
System.out.println(myObject);
// Second way that I tried
System.out.println(this.getObject());
}
}
您在上面看到的代码只是我尝试从 "myObject" 获取信息的示例。我意识到我无法从 Autowired 对象获取信息,因为 Quartz 不知道这个注释,所以我试图做的是创建一个抽象 class (AbstractJob) 扩展 QuartzJobBean 并在其上创建一个可以检索的方法一个存储的对象 (getObject),但它总是空的。考虑到它是一个不可序列化的对象,有人知道我如何能够从 "myObject" 获取此信息吗?
提前致谢!
我找到了这个答案 Custom Object parameters within Jobs using Quartz-scheduler,并且创建了我自己的工作工厂使得可以访问这个对象。
我正在尝试在我的工作中访问一个不可序列化的对象,但到目前为止我没有运气。这是我的代码到目前为止的样子
> public class ExecuteJob extends AbstractJob {
public static String REQUEST_NAME = "request";
private Request request;
@Autowired
MyObject myObject;
@Override
public void executeInternal(JobExecutionContext context) {
JobDataMap data = context.getJobDetail().getJobDataMap();
request = (Request) data.get(REQUEST_NAME);
System.out.println(myObject);
// Second way that I tried
System.out.println(this.getObject());
}
}
您在上面看到的代码只是我尝试从 "myObject" 获取信息的示例。我意识到我无法从 Autowired 对象获取信息,因为 Quartz 不知道这个注释,所以我试图做的是创建一个抽象 class (AbstractJob) 扩展 QuartzJobBean 并在其上创建一个可以检索的方法一个存储的对象 (getObject),但它总是空的。考虑到它是一个不可序列化的对象,有人知道我如何能够从 "myObject" 获取此信息吗?
提前致谢!
我找到了这个答案 Custom Object parameters within Jobs using Quartz-scheduler,并且创建了我自己的工作工厂使得可以访问这个对象。