我们可以在应用里管理队列,比如可以暂停队列或者恢复队列。先打开 app.processor 这个文件,在这个类里面我们先监听一下队列暂停还有恢复这两个事件。
用 @OnQueuePaused() 装饰一下方法,方法的名字是 onPaused,在这个方法里,可以在控制台上输出一行文字,队列暂停了。
下面再用 @OnResumed 装饰一个方法,方法的名字是 onResumed,方法有个 job 参数,类型是 Job,在控制台上可以输出一个 队列恢复了。
app.controller
然后打开 app.controller 这个文件,在里面定义两个接口,用 @Post 装饰一个方法,接口地址是 pause-queue。 方法的名字是 pauseQueue ,在这个方法里面,我们可以执行 this.appQueue 上面的 pause 方法,暂时 app 这个队列。
下面再用 @Post 装饰一个方法,接口地址设置成 resume-queue ,方法的名字是 resumeQueue,在这个方法里可以执行一下 appQueue 上面的 resume 这个方法恢复一下 app 这个队列。
测试
在 http 客户端再测试一下,先请求一下 images,这个接口,每次请求都会在控制台上输出处理任务相关的一些东西。
下面可以请求一下 pause-queue 这个接口,你会发现,控制台上输出了 队列暂停了,因为我们监听了这个队列的 paused 事件,发生这个事件就在控制台上输出这行文字。
再请求几次 imaegs 这个接口, 因为队列暂停了,所以添加到队列里的任务没有被处理。
再请求一下 resume-queue 这个接口,发送一下这个请求。控制台上输出 队列恢复了。 然后又输出了之前添加到队列里的这些任务的相关处理。