Apache Camel-এ Timer এবং Quartz কম্পোনেন্টগুলি সময়-ভিত্তিক প্রসেসিং এবং কার্যক্রমের জন্য ব্যবহৃত হয়। এগুলি সময় নির্ধারণ করে মেসেজ পাঠানো এবং শিডিউল করা সহজ করে।
১. Timer Component
Timer Component একটি সহজ এবং হালকা উপায় যা নির্দিষ্ট সময় অন্তর অন্তর মেসেজ উৎপন্ন করতে ব্যবহৃত হয়। এটি সাধারণত পরীক্ষার জন্য এবং দ্রুত ব্যবহারের জন্য উপযুক্ত।
Timer Component এর উদাহরণ
import org.apache.camel.builder.RouteBuilder;
public class TimerRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:myTimer?period=5000") // প্রতি 5 সেকেন্ডে একটি মেসেজ উৎপন্ন হবে
.setBody(simple("Current time: ${header.firedTime}"))
.to("log:timerOutput"); // লগ করা
}
}
২. Quartz Component
Quartz Component হল একটি শক্তিশালী সময় নির্ধারণকারী যা জটিল শিডিউলিংয়ের জন্য ব্যবহার করা হয়। এটি cron-like শিডিউলিং এর মাধ্যমে কার্যক্রম সম্পাদন করতে সক্ষম।
Quartz Component এর উদাহরণ
import org.apache.camel.builder.RouteBuilder;
public class QuartzRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("quartz://myTimer?cron=0/5+*+*+*+*+?") // প্রতি 5 সেকেন্ডে কার্যকর হবে
.setBody(simple("Quartz timer fired at: ${header.firedTime}"))
.to("log:quartzOutput"); // লগ করা
}
}
সম্পূর্ণ উদাহরণ
নিচে একটি সম্পূর্ণ উদাহরণ দেওয়া হলো যেখানে Timer এবং Quartz দুটোই ব্যবহার করা হয়েছে:
import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.builder.RouteBuilder;
public class MainApp {
public static void main(String[] args) throws Exception {
CamelContext camelContext = new DefaultCamelContext();
// Timer এবং Quartz রাউট যুক্ত করা
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
// Timer Route
from("timer:myTimer?period=5000")
.setBody(simple("Timer fired at: ${header.firedTime}"))
.to("log:timerOutput");
// Quartz Route
from("quartz://myTimer?cron=0/10+*+*+*+*+?")
.setBody(simple("Quartz timer fired at: ${header.firedTime}"))
.to("log:quartzOutput");
}
});
// Start the Camel context
camelContext.start();
// Keep running for some time
Thread.sleep(60000); // Run for 1 minute
// Stop the Camel context
camelContext.stop();
}
}
উপসংহার
Apache Camel-এ Timer এবং Quartz কম্পোনেন্টগুলি সময় নির্ধারণের জন্য অত্যন্ত কার্যকরী। Timer Component সাধারণ সময় নির্ধারণের জন্য ব্যবহার করা হয়, যেখানে Quartz Component জটিল এবং কাস্টমাইজড শিডিউলিংয়ের জন্য ব্যবহৃত হয়। এই কম্পোনেন্টগুলি আপনাকে নির্দিষ্ট সময়ের মধ্যে কার্যক্রম সম্পাদন করতে সক্ষম করে, যা বিভিন্ন ইন্টিগ্রেশন সিস্টেমে অত্যন্ত উপকারী।