java - 有没有办法从 Linux Shell 手动调用 Spring Quartz Job

标签 java linux spring quartz-scheduler

我有一个带有存档器作业的 spring 项目,有时我想从命令行手动调用它,有没有选项?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<bean id="archiverService" class="jobs.service.ArchiverService" />

<bean id="myJob" class="jobs.MyJobs" />

<bean id="archiverJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="cmd.jobs.Archiver" />
    <property name="jobDataAsMap">
        <map>
            <entry key="myJob" value-ref="myJob" />
        </map>
    </property>
</bean>

<bean id="cronTriggerArchiverJob" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="archiverJob" />
    <property name="cronExpression" value="0 0 23 * * ?" />
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="jobDetails">
        <list>
            <ref bean="archiverJob" />
        </list>
    </property>

    <property name="triggers">
        <list>
            <ref bean="cronTriggerArchiverJob" />
        </list>
    </property>
</bean>

</beans>

最佳答案

是的。

Quart Examples Page您会发现 Linux.sh AND Windows.bat 示例,例如 EXAMPLE1 .
只需替换您的 JDK 安装根目录即可。

基本上:

$JAVA -classpath $QUARTZ_CP $LOGGING_PROPS org.quartz.examples.example1.SimpleExample

example1.sh

#!/bin/sh
# Change this to your JDK installation root
#
#JAVA_HOME=/usr/java/jdk1.6.0_18

JRE=$JAVA_HOME/jre
JAVA=$JRE/bin/java

workdir=`dirname $0`
workdir=`cd ${workdir} && pwd`
QUARTZ=${workdir}/../..

. ${QUARTZ}/examples/bin/buildcp.sh

if [ `uname | grep CYGWIN` ]; then
  workdir=`cygpath -w -p $workdir`
fi

LOGGING_PROPS="-Dlog4j.configuration=file:${workdir}/log4j.xml"

$JAVA -classpath $QUARTZ_CP $LOGGING_PROPS org.quartz.examples.example1.SimpleExample

关于java - 有没有办法从 Linux Shell 手动调用 Spring Quartz Job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334638/

相关文章:

java - Tomcat 和 Maven :Publishing failed with multiple errors Error reading file C:\Windows\System32

java - 如何获得具有多行功能的 JLabel? HTML 真的是唯一的方法吗?

java - 如何通过Arraylist打印完整的输入列表?

linux - 以非 root 用户身份运行 Nginx

Java调用bash脚本: Permission Denied Error

c - perf - 获取 CPI 值的方法

Spring 安全性,启用 Oauth2 时出现 cors 错误

java - 获取 sqlite 数据到 ExpandableListView

Java CountDownLatch 不解锁?为什么最后一行不打印?

java - 为什么 Spring 3 中的 @RequestParameter String someValue 返回 2x 值?