我使用scrapy-splash来抓取网页,并在docker上运行splash服务.
commond:
docker run -p 8050:8050 scrapinghub/splash --max-timeout 3600
Run Code Online (Sandbox Code Playgroud)
但我得到了504错误.
"error": {"info": {"timeout": 30}, "description": "Timeout exceeded rendering page", "error": 504, "type": "GlobalTimeoutError"}
Run Code Online (Sandbox Code Playgroud)
虽然我尝试添加splash.resource_timeout
,request:set_timeout
或者SPLASH_URL = 'http://localhost:8050?timeout=1800.0'
没有任何改变.
感谢帮助.
我正在写一个案例来测试 flink 两步提交,下面是概述。
sink kafka
曾经是kafka生产者。sink step
是 mysql 接收器扩展two step commit
。sink compare
是mysql的sinkextend two step commit
,这个sink偶尔会抛出异常来模拟检查点失败。
当检查点失败并恢复时,我发现mysql两步提交可以正常工作,但是kafka消费者将读取上次成功的偏移量,并且kafka生产者会产生消息,即使他在这个检查点失败之前已经完成了。
在这种情况下如何避免重复消息?
感谢帮助。
环境:
弗林克1.9.1
爪哇1.8
卡夫卡2.11
卡夫卡生产者代码:
dataStreamReduce.addSink(new FlinkKafkaProducer<>(
"flink_output",
new KafkaSerializationSchema<Tuple4<String, String, String, Long>>() {
@Override
public ProducerRecord<byte[], byte[]> serialize(Tuple4<String, String, String, Long> element, @Nullable Long timestamp) {
UUID uuid = UUID.randomUUID();
JSONObject jsonObject = new JSONObject();
jsonObject.put("uuid", uuid.toString());
jsonObject.put("key1", element.f0);
jsonObject.put("key2", element.f1);
jsonObject.put("key3", element.f2);
jsonObject.put("indicate", element.f3);
return new ProducerRecord<>("flink_output", jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8));
}
}, …
Run Code Online (Sandbox Code Playgroud)