一架梯子,一头程序猿,仰望星空!
Asynq任务队列教程 > 内容正文

信号处理(Signals)


本页面介绍了如何使用信号来优雅地关闭工作服务器进程。

当您使用Server.Run(Handler)启动服务器处理时,它将阻塞并等待传入的信号。

有两种类型的信号可发送给正在运行的程序,以优雅地关闭进程。

  • TSTP:此信号告诉Server停止处理新任务。
  • TERMINT:此信号告诉Server终止(即关闭)。

建议您首先发送TSTP信号以停止处理新任务,并等待所有正在进行中的任务完成后,再发送TERM信号**以终止程序。

使用 kill 命令发送信号。

kill -TSTP  # 停止处理新任务

kill -TERM  # 关闭服务器

注意:如果在发送TERMINT信号时没有发送TSTP信号,Server将启动一个定时器,等待8秒钟,以便所有工作人员完成(要自定义此超时持续时间,请使用ShutdownTime配置)。如果在该时间范围内有工作人员未完成,则任务将被转换回待处理状态,并在程序重新启动后再处理。

注意:目前,Windows不支持TSTP信号。