如何在 PHP 中实施 CRON 作业以执行删除操作
How to Implement CRON job in PHP to perform Delete action
我有一个类别列表,每个类别都有删除按钮。单击 delete
时,我正在更新数据库中的一个字段以进行跟踪。列名是 "deleted"。如果我点击 delete
它将更新为 1
否则 0
.
if ($_REQUEST['action'] == 'delete')
{
$Deleted = $conn->query("update r_category SET deleted = 1 where id_category = ".$id);
}
}
如果被误删除,我已编写代码将其更新回 0
:
if ($_REQUEST['action'] == 'undo') {
$UndoDelete = $conn->query("update r_category SET deleted = 0");
}
我正在寻找的是当用户没有 'undo' 时,删除的文件必须
1 周后从数据库中删除。我该如何处理?谁能为此建议我一些代码。
我已经写了这段代码,我该如何调用它
<?php
$Url = "http://techdefeat.com/admin/category.php?action=undo";
$Handle = curl_init($Url);
$Response = curl_exec($Handle);
curl_close($Handle);
?>
首先您需要更正您的 undo delete
代码。否则它基本上是取消删除您 table 中的所有记录。不管怎样,我会分享我对你的问题的建议。
由于您询问的是 cron 作业,因此您可以在您的网络应用程序中创建一个操作,以便在特定时间由每日 cron 作业调用。例如,以下 cron 作业将在每天凌晨 1 点 运行 调用给定的 URL.
0 1 * * * curl http://domain.name/endpoint/url
在这种情况下,您必须为 deleted
字段维护 3 个状态,
- 0 - 未删除
- 1 - 等待删除
- 2 - 已删除
最初,deleted
字段将设置为 0。如果有人单击删除按钮,它可以更新为 1,即 "pending to delete"。您还需要通过添加 deletedDate
字段来更改 table 结构,当 deleted
字段更新为 1.
时,该字段将设置为当前时间戳
使用每日 cron 作业 运行ning,在操作中我们可以更新所有 "pending to delete" ( deleted
= 1) 超过一周的记录 deletedDate
通过设置 deleted
= 2 和 deletedDate
= "current timestamp".
来标记为已删除
这只是我的意见,通常不建议将 cron 作业用于此类任务,因为在可伸缩性方面存在问题。推荐的方法是实施任务队列并通过它们进行处理。
我有一个类别列表,每个类别都有删除按钮。单击 delete
时,我正在更新数据库中的一个字段以进行跟踪。列名是 "deleted"。如果我点击 delete
它将更新为 1
否则 0
.
if ($_REQUEST['action'] == 'delete')
{
$Deleted = $conn->query("update r_category SET deleted = 1 where id_category = ".$id);
}
}
如果被误删除,我已编写代码将其更新回 0
:
if ($_REQUEST['action'] == 'undo') {
$UndoDelete = $conn->query("update r_category SET deleted = 0");
}
我正在寻找的是当用户没有 'undo' 时,删除的文件必须 1 周后从数据库中删除。我该如何处理?谁能为此建议我一些代码。
我已经写了这段代码,我该如何调用它
<?php
$Url = "http://techdefeat.com/admin/category.php?action=undo";
$Handle = curl_init($Url);
$Response = curl_exec($Handle);
curl_close($Handle);
?>
首先您需要更正您的 undo delete
代码。否则它基本上是取消删除您 table 中的所有记录。不管怎样,我会分享我对你的问题的建议。
由于您询问的是 cron 作业,因此您可以在您的网络应用程序中创建一个操作,以便在特定时间由每日 cron 作业调用。例如,以下 cron 作业将在每天凌晨 1 点 运行 调用给定的 URL.
0 1 * * * curl http://domain.name/endpoint/url
在这种情况下,您必须为 deleted
字段维护 3 个状态,
- 0 - 未删除
- 1 - 等待删除
- 2 - 已删除
最初,deleted
字段将设置为 0。如果有人单击删除按钮,它可以更新为 1,即 "pending to delete"。您还需要通过添加 deletedDate
字段来更改 table 结构,当 deleted
字段更新为 1.
使用每日 cron 作业 运行ning,在操作中我们可以更新所有 "pending to delete" ( deleted
= 1) 超过一周的记录 deletedDate
通过设置 deleted
= 2 和 deletedDate
= "current timestamp".
这只是我的意见,通常不建议将 cron 作业用于此类任务,因为在可伸缩性方面存在问题。推荐的方法是实施任务队列并通过它们进行处理。