- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 lambda 函数内部通过 athena 成功查询 s3 一段时间了,但它突然停止工作了。进一步调查显示, get_query_execution() 的响应返回“已排队”状态(我被引导相信没有使用?!)
我的代码如下:
def run_query(query, database, s3_output, max_execution=5):
response = client.start_query_execution(
QueryString=query,
QueryExecutionContext={
'Database': database
},
ResultConfiguration={
'OutputLocation': s3_output
})
execution_id = response['QueryExecutionId']
print("QueryExecutionId = " + str(execution_id))
state = 'RUNNING'
while (max_execution > 0 and state in ['RUNNING']):
max_execution = max_execution - 1
print("maxexecution=" + str(max_execution))
response = client.get_query_execution(QueryExecutionId = execution_id)
if 'QueryExecution' in response and \
'Status' in response['QueryExecution'] and \
'State' in response['QueryExecution']['Status']:
state = response['QueryExecution']['Status']['State']
print(state)
if state == 'SUCCEEDED':
print("Query SUCCEEDED: {}".format(execution_id))
s3_key = 'athena_output/' + execution_id + '.csv'
print(s3_key)
local_filename = '/tmp/' + execution_id + '.csv'
print(local_filename)
rows = []
try:
print("s3key =" + s3_key)
print("localfilename = " + local_filename)
s3.Bucket(BUCKET).download_file(s3_key, local_filename)
with open(local_filename) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
rows.append(row)
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
print(e)
else:
raise
return json.dumps(rows)
elif state == 'FAILED':
return False
time.sleep(10)
return False
所以它显然正在正常工作 - 只是“QUEUED”状态完全出乎意料,我不知道该怎么办?什么会导致 query_execution 变为“已排队”以及我的代码需要更改哪些内容才能满足它?
最佳答案
看看Athena hook在 Apache 气流中。 Athena 具有最终状态(SUCCEEDED、FAILED 和 CANCELLED)和中间状态 - RUNNING 和 QUEUED。 QUEUED 是查询在开始之前的正常状态。所以你可以使用这样的代码:
def run_query(query, database, s3_output, max_execution=5):
response = client.start_query_execution(
QueryString=query,
QueryExecutionContext={
'Database': database
},
ResultConfiguration={
'OutputLocation': s3_output
})
execution_id = response['QueryExecutionId']
print("QueryExecutionId = " + str(execution_id))
state = 'QUEUED'
while (max_execution > 0 and state in ['RUNNING', 'QUEUED']):
max_execution = max_execution - 1
print("maxexecution=" + str(max_execution))
response = client.get_query_execution(QueryExecutionId = execution_id)
if 'QueryExecution' in response and \
'Status' in response['QueryExecution'] and \
'State' in response['QueryExecution']['Status']:
state = response['QueryExecution']['Status']['State']
print(state)
if state == 'SUCCEEDED':
print("Query SUCCEEDED: {}".format(execution_id))
s3_key = 'athena_output/' + execution_id + '.csv'
print(s3_key)
local_filename = '/tmp/' + execution_id + '.csv'
print(local_filename)
rows = []
try:
print("s3key =" + s3_key)
print("localfilename = " + local_filename)
s3.Bucket(BUCKET).download_file(s3_key, local_filename)
with open(local_filename) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
rows.append(row)
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
print(e)
else:
raise
return json.dumps(rows)
elif state == 'FAILED' or state == 'CANCELLED':
return False
time.sleep(10)
return False
关于python - 从 Lambda 函数查询 Athena - QUEUED 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59063219/
我正在测试 Mandrill API 并向我的 GMail 帐户发送了一封电子邮件。在 API 日志中,它说: "status": "queued" 根据 https://mandrill.zende
我正在使用 Airflow v1.8.1 并在 kubernetes 和 Docker 上运行所有组件(worker、web、flower、scheduler)。 我将 Celery Executor
据我所知,可以创建一个 nonblocking网络socket在 PHP 5.x 中。 但是,如果脚本使用如下相同的非阻塞套接字发送多条长消息,会发生什么情况: socket_write($socke
这个问题是指中消息的出队问题Oracle Streams 高级队列 . 我需要确保按顺序处理彼此相关的消息。 例如,假设队列中包含四个消息,这些消息具有称为事务引用 (txn_ref) 的业务相关字段
我需要实现一个公平的排队系统,以便根据某个消息 header 的值,针对当前排队的消息上该 header 的所有值,以循环方式处理消息。 系统中的消息自然地按某些属性进行分组,其中有数千个可能的值,并
遵循 Qt documentation 的建议和 this question's answers ,我的代码结构如下: 模拟器.h: class Emulator : public QObject {
运行我的应用一段时间后,Redis 没有回答查询,只说 QUEUED。似乎一个交易是开放的,而我在我的代码中执行所有交易。为什么交易没有完成?有没有办法检测和回滚它? 我查看了事务对象,没有丢弃、回滚
我正在使用 mailgun API 发送电子邮件。我错误地调用了一个函数,该函数在 Mailgun 中对数千封电子邮件进行了排队。 有没有办法取消/清除队列? 最佳答案 除了联系 Mailgun 支持
我从手机发送到 Twilio 的大部分消息都“排队”。这很奇怪,因为文档听起来好像状态甚至不适用于传入消息“发送消息的 API 请求成功并且消息已排队等待发送”至少我是这样读的。我不在乎它们是否排队,
我有一个 ASP .NET 核心 Web API,它使用描述的排队后台任务 here . 我使用了提供的代码示例并添加了 IBackgroundTaskQueue , BackgroundTaskQu
我在使用 Mandrill 发送电子邮件时遇到问题,我创建了一个帐户和一个新模板,但是当我尝试发送该模板的测试时......即使我曾经发送过电子邮件,我也会收到以下消息。 " Message not
如果我的术语有点偏差,请原谅;我对此很陌生。 我创建了一个 Azure 事件网格订阅,每当我将文件上传到 Blob 存储时,该订阅就会触发一个事件。我有一个响应此事件的 Azure 函数。我终于完成了
我在bluemix中使用自己上传的postgres图像启动了一个docker容器。 docker 容器现在处于“已排队”状态数小时。这是我所做的: //将最新的postgres图像上传到bluemix
如何从 Laravel 作业类中访问负载? 我试过: pdf = $pdf; } /** * Execute the job. * * @return v
我有兴趣使用具有类似于 MSMQ 功能的免费库在 win 表单应用程序中的 3 个应用程序域之间发送/接收消息。我只需要私有(private)队列功能(没有公共(public)队列或 AD 支持)请提
我们有一个场景,提交给 ThreadPoolExecutor 的任务是长时间运行的。当线程池启动时,我们以核心池大小 = 5、最大池大小 = 20 和队列大小 10 启动它。在我们的应用程序中,大约有
我已经在 lambda 函数内部通过 athena 成功查询 s3 一段时间了,但它突然停止工作了。进一步调查显示, get_query_execution() 的响应返回“已排队”状态(我被引导相信
动态壁纸崩溃,代码如下 public void render(){ Canvas canvas = null; try{ canvas = this._surfaceH
我正在用 mocha 测试一个模块,场景是一个小类,它有方法,有一个必需的回调参数。 当我在第一个 describe 上运行测试时,它得到了预期的结果,当它在第二个和第三个 describe 上运行时
我要为邮件创建队列作业。一旦我在命令提示符 php artisan make:job SendSMSMessages --queued 中点击 artisan 命令,我就遇到了如下问题。 The "-
我是一名优秀的程序员,十分优秀!