首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果队列为空,则终止吊舱

如果队列为空,则终止吊舱
EN

Stack Overflow用户
提问于 2022-11-23 13:25:54
回答 1查看 32关注 0票数 1

我在创造

  • A pod每两分钟使用cron-job
  • ,它有自定义python映像,可以从redis

读取数据。

问题是,它继续每两分钟创建一次豆荚,不管其他人是否终止,我试图终止吊舱,如果我从吊舱中得到像“空”一样的响应,在吊舱中运行的操作给出这样的响应,如果没有这样的响应,我想在10秒内终止。

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 18:59:55

你可以做这样的事

代码语言:javascript
复制
kubectl wait --for=condition=complete job/jobname

您还可以设置一个超时:

代码语言:javascript
复制
kubectl wait --for=condition=complete --timeout=10s job/jobname

示例python脚本,它将检查redis

代码语言:javascript
复制
#!/usr/bin/env python

import time
import rediswq

host="redis"
# Uncomment next two lines if you do not have Kube-DNS working.
# import os
# host = os.getenv("REDIS_SERVICE_HOST")

q = rediswq.RedisWQ(name="job2", host=host)
print("Worker with sessionID: " +  q.sessionID())
print("Initial queue state: empty=" + str(q.empty()))
while not q.empty():
  item = q.lease(lease_secs=10, block=True, timeout=2) 
  if item is not None:
    itemstr = item.decode("utf-8")
    print("Working on " + itemstr)
    time.sleep(10) # Put your actual work here instead of sleep.
    q.complete(item)
  else:
    print("Waiting for work")
print("Queue empty, exiting")

参考文献:https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74547540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档