当满足某些条件时,比如遇到特殊类型的元组,我想停用拓扑.这可以在喷嘴/螺栓中完成吗?如果是,有没有办法从spout/bolt重新激活拓扑?
我已在下面的代码中添加了所有三个操作来激活/停用/终止。这可以从独立的 java 代码(spout/bolt 外部)调用。
从 Spout 或 Bolt 停用很简单,但重新激活会很棘手,因为一旦停用,您的 Spout/Bolt 就不会主动运行 Java 程序。
import backtype.storm.generated.KillOptions;
import backtype.storm.generated.Nimbus.Client;
import backtype.storm.utils.NimbusClient;
import backtype.storm.utils.Utils;
Client client = NimbusClient.getConfiguredClient(Utils.readStormConfig()).getClient();
client.activate(topologyName);
client.deactivate(topologyName);
KillOptions killOpts = new KillOptions();
killOpts.set_wait_secs(30);
client.killTopologyWithOpts(topologyName, killOpts);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |