Я работаю с Apollo, чтобы сделать возможным запуск подписки позднее по расписанию. Я решил использовать Повестка дня для планирования на моем сервере NodeJS.
Я подумал, может быть, я мог бы использовать константу pubsub
с тем же идентификатором 'newNotification' для запуска подписки. Но подписка не срабатывает, только событие Повестка дня.
Функция «Моя повестка дня»:
const schedule = async (options) => {
const {name, time, data} = options
// Don't do anything until agenda server is ready
await new Promise(resolve => agenda.once('ready', resolve));
// define the agenda type
agenda.define(name, (job, done) => {
const {user} = job.attrs.data;
console.log(`Hello, World! ${user}`);
pubsub.publish('newNotification', {}, { user: user });
done()
});
// Define and serve the agenda
agenda.schedule(time, name, data);
}
schedule({
name: "My event",
time: moment().add(20, 's').toDate(),
data: {
user: "5c920329756c52831cf45f0b"
}
})
Мой распознаватель подписки выглядит так:
Subscription: {
newNotification: {
subscribe: withFilter(
() => pubsub.asyncIterator('newNotification'),
(payload, variables) => {
return payload.user === variables.user;
},
)
}
},