Cron在Google Cloud Run中停止

法比安

我在Google Cloud Run中使用crond + Alpine创建了一个cron

一切正常,但是几分钟后,当容器没有通过http收到任何请求时,cron将停止。

但是,如果您在至少30分钟后停止了cron,就不会重新加载网页。

知道有什么问题吗?

这是我的dockerfile。

FROM python:3.8-alpine

RUN apk --no-cache add musl-dev linux-headers g++
RUN apk add --no-cache build-base dcron tzdata
RUN apk add --no-cache libffi-dev

COPY cronjobs /var/spool/cron/crontabs/root

WORKDIR /usr/src/app

COPY requirements.txt ./

ENV TZ="America/Montevideo"

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

ENV PORT 8080
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0

RUN chmod a+x startup.sh
CMD ["./startup.sh"]

cronjob

*/15 * * * * cd /usr/src/app && python3 test.py >> cron.txt 2>&1
约翰·汉利

就Cloud Run的设计而言,没有什么错。

没有请求时,Cloud Run容器将被挂起。这意味着您无法执行后台任务。Cloud Run是一个HTTP请求/响应系统。当Cloud Run返回HTTP响应并且没有其他请求正在处理时,您的CPU将停止。

启动之后,您应该只希望能够在请求范围内进行计算:如果容器实例不处理请求,则不会分配任何CPU。

容器运行时合同

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章