一旦完成DataFlow样条线,是否可以获取回调?
管道完成后,我必须对系统进行一些配置更改,以使用管道生成的新Output和其他一些清理操作。
现在,我实际上是在使用public function receivingSheetOfStationwise($data){
extract($data);
$this->db->select('*');
$this->db->from('bilty');
$this->db->where('lr_to',$station);
$this->db->where('status', 'active');
$this->db->order_by('b.lr_no','asc');
$query=$this->db->get();
return $query->result();
}
函数来暂停程序流,然后进行配置更改。因此,当测试在本地系统中运行时,它会暂停开发人员的命令提示符,否则用户必须等待管道完成。
那么有更好的方法吗?像回调机制一样?
答案 0 :(得分:0)
开箱即用的数据流中没有回调注册表。
但是,您可以在stackdriver上设置自定义警报,该警报可以在管道完成后向您发出警报。
答案 1 :(得分:0)
Apache Beam提供了 Stop Bundle 和 Teardown 方法以及您可能会用来执行任务的其他生命周期方法。
答案 2 :(得分:0)
在最终转换中,我向自己发送了一个http请求:
import requests
def on_complete(callback_url):
def _on_complete(element):
r = requests.post(callback_url)
if r.status_code != 200:
# handle error
return _on_complete
管道代码:
_ = (p
# ... my other transforms
| 'count outputs' >> apache_beam.combiners.Count.Globally()
| 'on complete' >> apache_beam.Map(on_complete(callback_url)))
我做'count outputs'
以确保'on complete'
仅收到一个元素