ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บนแพลตฟอร์ม

RUK-COM PAAS / APPLICATION SETTINGS

คู่มือ Quartz Scheduling สำหรับ การตั้งค่า Application

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

ควอตซ์เป็นบริการจัดตารางงานโอเพ่นซอร์สที่มีคุณสมบัติครบถ้วนซึ่งสามารถบูรณาการหรือใช้ร่วมกับแอปพลิเคชัน Java ใดๆก็ได้ตั้งแต่แอปพลิเคชันเดี่ยวที่เล็กที่สุดไปจนถึงระบบอีคอมเมิร์ซที่ใหญ่ที่สุดควอตซ์สามารถใช้เพื่อสร้างตารางเวลาที่เรียบง่ายหรือซับซ้อนสำหรับการดำเนินงานนับสิบร้อยหรือแม้แต่หลายหมื่นงานงานที่มีการกำหนดงานให้เป็นส่วนประกอบ Java มาตรฐานที่อาจดำเนินการแทบทุกอย่างที่คุณสามารถตั้งโปรแกรมให้ทำ

หากแอปพลิเคชันของคุณมีงานที่จำเป็นต้องเกิดขึ้นในช่วงเวลาใดก็ตามหรือหากระบบของคุณมีงานบำรุงรักษาที่เกิดซ้ำ Quartz อาจเป็นโซลูชันในอุดมคติของคุณ

มาดูกันว่า Quarts ทำงานอย่างไรในระบบคลาวด์!

สร้าง Environment

  1. เข้าสู่ระบบแดชบอร์ดแพลตฟอร์ม

  2. สร้าง Environment ใหม่

Image 36: create environment3. เลือกแมวตัวผู้เป็นแอปพลิเคชันเซิร์ฟเวอร์ของคุณและตั้งค่าขีดจำกัดของ Cloudlet จากนั้นพิมพ์ชื่อ Environment ของคุณเช่นควอตซ์และคลิกสร้าง.

Image 37: environment wizardรอสักครู่เพื่อสร้าง Environment ของคุณ

สร้างแอปพลิเคชัน

  1. สร้างเว็บแอปพลิเคชันของคุณ (ในกรณีของเราเราใช้แอปพลิเคชันที่ใช้ Maven) และเพิ่มการอ้างอิงต่อไปนี้ให้กับคุณpom.xmlไฟล์เพื่อรวมไลบรารี Quartz เข้ากับโครงการของคุณ:

คัดลอก xml

<!-- Quartz API -->
    <dependency>
        <groupId>opensymphony</groupId>
        <artifactId>quartz</artifactId>
        <version>1.6.3</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.directory.studio</groupId>
        <artifactId>org.apache.commons.logging</artifactId>
        <version>1.1.1</version>
    </dependency>
  1. สร้างโครงการของคุณด้วยการพึ่งพา

  2. สร้างคลาส Java ใหม่ซึ่งจะใช้งานของคุณนี่คือตัวอย่างซึ่งแสดงเวลาเซิร์ฟเวอร์:

จาวาคัดลอก

package com;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class HelloJob implements Job
{
    public void execute(JobExecutionContext context)
    throws JobExecutionException {

        System.out.println("Server Time: " + new Date());
    }
}
  1. สร้างใหม่เซิร์ฟเล็ต(คุณสามารถใช้ตรรกะในระดับอื่นได้อย่างง่ายดาย) และระบุทริกเกอร์ Quartz เพื่อกำหนดว่าเมื่อใดที่ตัวกำหนดเวลาเหตุการณ์ Quartz จะรันงานข้างต้นของคุณในกรณีของเราเราได้สร้างขึ้นQuartzServlet.javaซึ่งมีคำสั่ง (การบันทึกซึ่งใช้งานในคลาส HelloJob) ที่กำลังดำเนินการทุกนาที

จาวาคัดลอก

package com;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            JobDetail job = new JobDetail();
            job.setName("dummyJobName");
            job.setJobClass(HelloJob.class);

            CronTrigger trigger = new CronTrigger();
            trigger.setName("TriggerName");
            trigger.setCronExpression("0 */1 * * * ?");

            Scheduler scheduler = new StdSchedulerFactory().getScheduler();
            scheduler.start();
            scheduler.scheduleJob(job, trigger);

        } catch (SchedulerException ex) {
            Logger.getLogger(QuartzServlet.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(QuartzServlet.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    public String getServletInfo() {
        return "Short description";
    }
}
  1. สร้างโครงการของคุณให้เป็นสงครามไฟล์.

ปรับใช้แอปพลิเคชัน

  1. กลับไปที่แดชบอร์ดแพลตฟอร์มแล้วอัปโหลดสงครามไฟล์คุณเพิ่งสร้างขึ้น

Image 40: upload Quartz archive2. ปรับใช้แอปพลิเคชันของคุณกับ Environment ที่คุณสร้างไว้ก่อนหน้านี้

Image 41: deploy Quartz application3. เปิดแอปของคุณในเบราว์เซอร์และตรวจสอบผลลัพธ์ในกรณีของเราเราต้องไปที่บริบทของควอตซ์ (http://{env_name}.{hoster_domain}/quartz ตามการแมป Servlet “QuartzServlet”) และตรวจสอบบันทึกแอปพลิเคชันของเรา

Image 42: Tomcat logอย่างที่คุณเห็นการจัดตารางงานโดยใช้ Quartz นั้นช่างมีเสน่ห์

Image 43: Quartz event schedulerหวังว่าคำแนะนำเกี่ยวกับการ Deploy Quartz นี้จะเป็นประโยชน์สำหรับคุณ!