我使用cron来安排推送通知。正在收集来自用户的消息推送数据和预定时间,以便在预定时间发送消息推送。
下面是我如何创建cron作业来安排推送通知:
const CronJob = require("cron").CronJob;
...
...
const schedulePushNotification = async (req, res) => {
const job = new CronJob(
new Date(req.body.scheduledTime),
async () => {
// my code to send push notification
// code to store push notification data
// Here I write a code to store push notification data to
// show on the dashboard like a list of notification
},
null,
true,
"America/Los_Angeles"
);
job.start();
return res.status(200).json({
success: true,
message: "Notification has been scheduled successfully !",
data: null,
});
};
现在,要求是,如果用户想要取消预定的推送通知,他们可以单击cancel。
那么,我怎样才能摧毁正在运行的cron呢?
您可以通过在函数中添加if语句来实现这一点
您可以检查用户是否激活了通知,但首先,您必须在数据库中存储用户是否激活了通知,然后发送通知
您可以通过在函数中添加if语句来实现这一点
您可以检查用户是否激活了通知,但首先必须在数据库中存储用户是否激活了通知,然后发送通知
const CronJob = require("cron").CronJob;
...
...
const schedulePushNotification = async (req, res) => {
const job = new CronJob(
new Date(req.body.scheduledTime),
async () => {
let userNotificationDetails = getUserNotificationDetails();
if(userNotificationDetails.isSendNotification){
job.start();
} else {
// don't send notification
}
// my code to send push notification
// code to store push notification data
// Here I write a code to store push notification data to
// show on the dashboard like a list of notification
},
null,
true,
"America/Los_Angeles"
);
return res.status(200).json({
success: true,
message: "Notification has been scheduled successfully !",
data: null,
});
};
.
编辑(替代解决方案:在启动cron之前检查是否通知):
const CronJob = require("cron").CronJob;
...
...
const schedulePushNotification = async (req, res) => {
const job = new CronJob(
new Date(req.body.scheduledTime),
async () => {
// my code to send push notification
// code to store push notification data
// Here I write a code to store push notification data to
// show on the dashboard like a list of notification
},
null,
true,
"America/Los_Angeles"
);
let userNotificationDetails = getUserNotificationDetails();
if(userNotificationDetails.isSendNotification){
job.start();
} else {
// don't send notification
}
return res.status(200).json({
success: true,
message: "Notification has been scheduled successfully !",
data: null,
});
};
本文向大家介绍如何临时存储数据以便以后在Oracle中使用?,包括了如何临时存储数据以便以后在Oracle中使用?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要临时存储SQL的结果。 解 我们可以使用CREATE GLOBAL TEMPORARY TABLE语句创建一个表,该表临时存储会话的数据。此外,您可以指定是保留会话的临时表数据还是事务提交之前。我们可以进一步使用ON COMMIT
问题内容: 在MySQL数据库中用PHP存储IP的最佳实践是什么?有一个名为ip2long的函数-但这仅适用于IPv4。但是IPv6呢? 我知道一个用于IPv6 IP的php函数,但是在Windows上的PHP <Version 5.3上不起作用 问题答案: 可以将点分十进制IPv4地址转换为整数,最大大小为32位。IPv6地址是128位。由于128位不适合PHP int,因此在PHP中使用它会很
我试图将一个几何体对象存储到我的postgist数据库中,该数据库有一个带有几何体列的表。我从另一个带有几何列的表格中得到了几何值,我打印了我之前得到的值,结果没问题。要存储几何体值,我使用下一个函数: 但我总是得到这个错误: 组织。postgresql。util。PSQLException:无法推断用于org实例的SQL类型。波斯吉斯。指向使用带有显式类型值的setObject()指定要使用的类
我创建了一个TextView,它以多行显示值 ,我希望将该值保留在SQLite数据库中。这是我使用的代码: 问题是当我保存值时,整个值被插入到一个单元格中。我希望每行的值分开,然后插入到每行的单个单元格中,尽管我使用扫描器方法插入数据,但它不起作用。那有什么办法吗?
问题内容: 我有一个MySQL数据库。默认存储引擎为。 我想将其更改为。 我可以逐个表地更改它,但是我想一次更改它影响所有表。 如何更改数据库存储引擎?我尝试过,但似乎没有选择。 问题答案: 登录后,转到要更改的表,然后单击“操作”选项卡。在这里,您可以更改存储类型以及其他一些选项 在线文件
您使用Express v4. x构建node.js应用程序,然后通过npm开始启动您的应用程序。我的问题是如何停止应用程序?有npm停止吗? 执行npm停止时编辑以包含错误