Apache Camel-এ Periodic Tasks এবং Polling Routes হল দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা নির্দিষ্ট সময়ের মধ্যে কাজ সম্পাদন এবং বিভিন্ন সোর্স থেকে ডেটা প্রাপ্তির জন্য ব্যবহৃত হয়। নিচে এই দুটি বৈশিষ্ট্যের বিস্তারিত আলোচনা এবং ব্যবহার উদাহরণ দেওয়া হলো।
Periodic Task হল এমন একটি কাজ যা নির্দিষ্ট সময় অন্তর অন্তর চলে। এটি সাধারণত Timer বা ScheduledExecutorService ব্যবহার করে তৈরি করা হয়।
import org.apache.camel.builder.RouteBuilder;
public class PeriodicTaskExample extends RouteBuilder {
@Override
public void configure() {
from("timer:foo?period=10000") // Trigger every 10 seconds
.setBody(simple("This task runs every 10 seconds.")) // Set the message body
.to("log:info"); // Log the message
}
}
Polling Routes হল এমন রুট যা একটি সোর্স থেকে সময় সময়ে ডেটা নিয়ে আসে। এটি সাধারণত ডাটাবেস, ফাইল সিস্টেম, অথবা অন্য যে কোনো সেবা থেকে তথ্য সংগ্রহের জন্য ব্যবহৃত হয়।
২.১. Polling with File Component
import org.apache.camel.builder.RouteBuilder;
public class FilePollingExample extends RouteBuilder {
@Override
public void configure() {
from("file:input?noop=true") // Poll the input directory
.log("Polling file: ${file:name}") // Log the file name
.to("file:output"); // Move the file to the output directory
}
}
২.২. Polling with Database Component
import org.apache.camel.builder.RouteBuilder;
public class DatabasePollingExample extends RouteBuilder {
@Override
public void configure() {
from("timer:foo?period=60000") // Poll every 60 seconds
.to("jdbc:dataSource") // Query the database
.log("Fetched records: ${body}") // Log the fetched records
.process(exchange -> {
// Process the fetched data
List<Map<String, Object>> rows = exchange.getIn().getBody(List.class);
for (Map<String, Object> row : rows) {
// Process each row
System.out.println("Processing row: " + row);
}
});
}
}
Camel Context শুরু করার জন্য একটি CamelApplication
ক্লাস তৈরি করুন:
import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
public class CamelApplication {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
// Add routes
context.addRoutes(new PeriodicTaskExample());
context.addRoutes(new FilePollingExample());
context.addRoutes(new DatabasePollingExample());
// Start the context
context.start();
System.out.println("Periodic tasks and polling routes are running...");
// Keep the application running
Thread.sleep(300000); // Keep running for 5 minutes
context.stop();
}
}
Apache Camel-এ Periodic Tasks এবং Polling Routes হল দুটি কার্যকরী উপায় যা নির্দিষ্ট সময়ে কাজ সম্পন্ন করতে এবং সোর্স থেকে ডেটা সংগ্রহ করতে সহায়তা করে।
এই বৈশিষ্ট্যগুলো ব্যবহার করে আপনি আপনার Camel অ্যাপ্লিকেশনগুলির কার্যকারিতা বাড়াতে পারেন এবং সময়সীমার ভিত্তিতে কার্যক্রম পরিচালনা করতে সক্ষম হবেন।
আরও দেখুন...