Reputation: 18281
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
Reputation: 8171
Might want to check TOPOLOGY_DISRUPTOR_WAIT_STRATEGY
attribute as mentioned here
Upvotes: 1
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
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