You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Justin W (JIRA)" <ji...@apache.org> on 2016/02/01 09:10:39 UTC

[jira] [Created] (CAMEL-9553) Twitter consumer doesn't respect the delay parameter

Justin W created CAMEL-9553:
-------------------------------

             Summary: Twitter consumer doesn't respect the delay parameter
                 Key: CAMEL-9553
                 URL: https://issues.apache.org/jira/browse/CAMEL-9553
             Project: Camel
          Issue Type: Bug
          Components: camel-twitter
    Affects Versions: 2.16.2
         Environment: OpenJDK Runtime Environment (IcedTea 2.6.4) (Arch Linux build 7.u95_2.6.4-1-x86_64)

            Reporter: Justin W
            Priority: Minor


I've configured a polling Twitter endpoint with nearly default Spring configuration as follows:

{code}
from("twitter://search?type=polling&keywords=searchterms&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
{code}

However, it doesn't seem to respect the delay parameter.

On debugging, the delay parameter is set properly:

{code}
    public TwitterConsumerPolling(TwitterEndpoint endpoint, Processor processor,
                                  Twitter4JConsumer twitter4jConsumer) {
        super(endpoint, processor);

        this.twitter4jConsumer = twitter4jConsumer;

        int delay = endpoint.getProperties().getDelay();
        setInitialDelay(1);
        setDelay(delay);  // delay is set properly to 60 here
        setTimeUnit(TimeUnit.SECONDS);
    }
{code}

but when the run() method of the ScheduledPollConsumer runs, the delay parameter is still the default of 500.

{code}
public void run() {
        // avoid this thread to throw exceptions because the thread pool wont re-schedule a new thread
        try {
            // log starting
            if (LoggingLevel.ERROR == runLoggingLevel) {
                LOG.error("Scheduled task started on:   {}", this.getEndpoint());
            } else if (LoggingLevel.WARN == runLoggingLevel) {
                LOG.warn("Scheduled task started on:   {}", this.getEndpoint());
            } else if (LoggingLevel.INFO == runLoggingLevel) {
                LOG.info("Scheduled task started on:   {}", this.getEndpoint());
            } else if (LoggingLevel.DEBUG == runLoggingLevel) {
                LOG.debug("Scheduled task started on:   {}", this.getEndpoint());
            } else {
                LOG.trace("Scheduled task started on:   {}", this.getEndpoint());
            }

            // execute scheduled task
            doRun();

            // log completed
            if (LoggingLevel.ERROR == runLoggingLevel) {
                LOG.error("Scheduled task completed on: {}", this.getEndpoint());
            } else if (LoggingLevel.WARN == runLoggingLevel) {
                LOG.warn("Scheduled task completed on: {}", this.getEndpoint());
            } else if (LoggingLevel.INFO == runLoggingLevel) {
                LOG.info("Scheduled task completed on: {}", this.getEndpoint());
            } else if (LoggingLevel.DEBUG == runLoggingLevel) {
                LOG.debug("Scheduled task completed on: {}", this.getEndpoint());
            } else {
                LOG.trace("Scheduled task completed on: {}", this.getEndpoint());
            }

        } catch (Error e) {
            // must catch Error, to ensure the task is re-scheduled
            LOG.error("Error occurred during running scheduled task on: " + this.getEndpoint() + ", due: " + e.getMessage(), e);
        }
    }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)