Apache Camel-এ Periodic Tasks এবং Polling Routes হল দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা নির্দিষ্ট সময়ের মধ্যে কাজ সম্পাদন এবং বিভিন্ন সোর্স থেকে ডেটা প্রাপ্তির জন্য ব্যবহৃত হয়। নিচে এই দুটি বৈশিষ্ট্যের বিস্তারিত আলোচনা এবং ব্যবহার উদাহরণ দেওয়া হলো।

১. Periodic Task

Periodic Task হল এমন একটি কাজ যা নির্দিষ্ট সময় অন্তর অন্তর চলে। এটি সাধারণত Timer বা ScheduledExecutorService ব্যবহার করে তৈরি করা হয়।

Periodic Task এর উদাহরণ

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 Routes হল এমন রুট যা একটি সোর্স থেকে সময় সময়ে ডেটা নিয়ে আসে। এটি সাধারণত ডাটাবেস, ফাইল সিস্টেম, অথবা অন্য যে কোনো সেবা থেকে তথ্য সংগ্রহের জন্য ব্যবহৃত হয়।

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 শুরু করা

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 হল দুটি কার্যকরী উপায় যা নির্দিষ্ট সময়ে কাজ সম্পন্ন করতে এবং সোর্স থেকে ডেটা সংগ্রহ করতে সহায়তা করে।

  • Periodic Tasks ব্যবহার করে আপনি সময় নির্ধারিত কাজগুলি সহজে করতে পারেন।
  • Polling Routes ব্যবহার করে আপনি বিভিন্ন সোর্স থেকে তথ্য সময় সময়ে সংগ্রহ করতে পারেন।

এই বৈশিষ্ট্যগুলো ব্যবহার করে আপনি আপনার Camel অ্যাপ্লিকেশনগুলির কার্যকারিতা বাড়াতে পারেন এবং সময়সীমার ভিত্তিতে কার্যক্রম পরিচালনা করতে সক্ষম হবেন।

আরও দেখুন...

Promotion