David
David

Reputation: 18281

Storm: Possible to set topology.message.timeout.secs much higher for one bolt

Part of my topology depends on working with a 3rd party API that rate limits certain calls in 15 minute windows. Worst case the rate limit will land and the bolt will need to sleep for 15 minutes. Unfortunately it doesn't seem like I can tell storm to "sleep" on a task for 15 minutes but I am hoping I am wrong.

Alternatively, is there a way to work around time restricted tasks like this in storm? ( have a spout feed another spout? ).

Upvotes: 4

Views: 3608

Answers (3)

user2720864
user2720864

Reputation: 8171

Might want to check TOPOLOGY_DISRUPTOR_WAIT_STRATEGY attribute as mentioned here

Upvotes: 1

Vor
Vor

Reputation: 35139

You may want to take a look at ticktuple (but it's only for 600 seconds)

```
Config conf = new Config();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 1);
```

So take a look at this

Upvotes: 1

Chiron
Chiron

Reputation: 20245

I'm not aware of any configuration that allows you to do so and Config isn't offering a config entry for that.

A workaround is as you suggested. When you got your output from the 3rd party API, feed that to a dedicated Spout which in turn will emit it to the 'callback' Bolt.

Upvotes: 3

Related Questions