寶塔+fastadmin:給項目添加定時任務

一、定時任務腳本編寫

1. 使用 shebang 聲明執行器

#!/usr/bin/env php
  • 這是 Unix/Linux 系統中腳本文件的標準開頭。
  • 表示這個腳本使用系統環境變量中的 php 來執行。

2. 定義 ThinkPHP 入口路徑并加載框架

define('APP_PATH', __DIR__ . '/../../application/');
require __DIR__ . '/../../thinkphp/start.php';
  • APP_PATH:定義了項目的入口目錄。
  • 加載 ThinkPHP 框架,使你可以使用 Db 類、模型等功能。

3. 引入 ThinkPHP 的數據庫類

use think\Db;
  • 方便后續操作數據庫。

4. 判斷是否是周一的方法

function isMonday() {return date('w') == 1;
}
  • 使用 date('w') 獲取當前星期幾:
    • 0 = 周日
    • 1 = 周一 ?
  • 所以這個函數返回 true 表示今天是 周一

5. 獲取上周的周標識(格式如:2025-W20)

function getLastWeekIdentifier() {$last_week = strtotime("-1 week");$year = date("Y", $last_week);$week = date("W", $last_week);return "{$year}-W{$week}";
}
  • strtotime("-1 week"):獲取上周同一時間的時間戳
  • date("W", ...):ISO-8601 周數(從 1 開始)
  • 返回值示例:2025-W20

6. 日志記錄函數

function logMessage($message) {$logFile = __DIR__ . "/update_log.txt";file_put_contents($logFile, "【" . date('Y-m-d H:i:s') . "】" . $message . "\n",     FILE_APPEND);
}
  • 把每次運行的信息寫入日志文件 update_log.txt
  • 便于調試和查看執行情況

?? 主邏輯部分(try-catch 包裹)

try {

用 try-catch 包裹整個邏輯,確保出錯時能捕獲異常并記錄日志。


7. 判斷是否是周一

if (!isMonday()) {logMessage("不是周一,跳過任務");exit("不是周一,跳過任務\n");
}
  • 如果不是周一,直接退出程序,不執行更新操作

8. 獲取上周標識并記錄日志

$lastWeek = getLastWeekIdentifier();
logMessage("??正在處理上周周標識:{$lastWeek}");
  • 獲取上周的周標識(如 2025-W20
  • 記錄日志方便后續查看

9. 查詢上周的數據

$records = Db::table('weekly_emitem_apply_setting')
->where('week', $lastWeek)
->select();
  • 查詢所有 week = '2025-W20' 的記錄
  • 準備進行字段更新

10. 遍歷每條記錄并處理

foreach ($records as $record) {$id = $record['id'];$employee_num = $record['employee_num'];$item_no = $record['item_no'];$actual_total = $record['actual_total_qty'];$week_apply = $record['week_apply_qty'];
  • 提取每條記錄的關鍵字段
  • 如員工編號、料號、累計數量、本周申請量等

11. 計算新的累計數量

$newTotal = $actual_total + $week_apply;
  • 將本周申請量累加到累計數量中

12. 獲取當前周標識(如:2025-W21)

$currentWeek = date("Y") . "-W" . str_pad((int)date("W"), 2, 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83919.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每日Prompt:自拍生成搖頭娃娃

提示詞 將這張照片變成一個搖頭娃娃:頭部稍微放大,保持面部準確,身體卡通化。[把它放在書架上]。

【Tools】neovim操作指南

Neovim 中最常見、最實用的操作, 主要針對C 開發需求&#xff1a; &#x1f680; 基礎操作 操作快捷鍵說明保存:w 或 ZZ保存當前文件退出:q 或 ZQ退出當前窗口保存并退出:wq 或 ZZ保存并退出強制退出:q!不保存直接退出撤銷u撤銷上一步重做<C-r>重做撤銷搜索/xxx向下搜索…

Visual Studio 制作msi文件環境搭建

一、插件安裝 a. 插件尋找 在 Visual Studio 2017 中&#xff0c;如果你希望安裝用于創建 MSI 安裝包的插件&#xff0c;第一步是&#xff1a;打開 Visual Studio 后&#xff0c;點擊頂部菜單欄中的 “工具”&#xff08;Tools&#xff09;&#xff0c;然后選擇下拉菜單中的 “…

深入解析 OpenManus:開源 AI 智能體框架的技術原理與實踐

深入解析 OpenManus&#xff1a;開源 AI 智能體框架的技術原理與本地部署指南 在當今人工智能快速發展的時代&#xff0c;智能體&#xff08;Agent&#xff09;技術正逐漸成為推動自動化和智能化的關鍵力量。OpenManus&#xff0c;由 MetaGPT 團隊開發的開源 AI 智能體框架&am…

利用 SQL Server 作業實現異步任務處理,簡化系統架構

在現代企業系統中&#xff0c;異步任務是不可或缺的組成部分&#xff0c;例如&#xff1a; 電商系統中的訂單超時取消&#xff1b; 報表系統中的異步數據導出&#xff1b; CRM 系統中的客戶積分計算。 傳統的實現方式通常涉及引入消息隊列&#xff08;如 RabbitMQ、Kafka&a…

ubuntu sh安裝包的安裝方式

ubuntu sh安裝包的安裝方式以Miniconda2為例 https://repo.anaconda.com/miniconda/ 如果需要python2.7版本可下載以下版本 Miniconda2-latest-Linux-x86_64.sh 打開終端輸入安裝命令 sudo sh Miniconda2-latest-Linux-x86_64.sh 然后按提示安裝&#xff0c;注意安裝位置 …

gRPC開發指南:Visual Studio 2022 + Vcpkg + Windows全流程配置

前言 gRPC作為Google開源的高性能RPC框架&#xff0c;在微服務架構中扮演著重要角色。本文將詳細介紹在Windows平臺下&#xff0c;使用Visual Studio 2022和Vcpkg進行gRPC開發的完整流程&#xff0c;包括環境配置、項目搭建、常見問題解決等實用內容。 環境準備 1. 安裝必要組…

C#控制流

&#x1f9e9; 一、控制流概述 C# 中的控制流語句用于根據條件或循環執行代碼塊。它們是程序邏輯的核心部分。 ? 二、1. if、else if、else int score 85;if (score > 90) {Console.WriteLine("優秀"); } else if (score > 60) {Console.WriteLine("及…

你知道mysql的索引下推么?

在此之前&#xff0c;需要先明白mysql內部的一個大致結構&#xff0c;mysql內部大概是劃分為3處&#xff0c;client客戶端連接&#xff0c;server層&#xff0c;存儲引擎層 索引下推是mysql5.6之后內部的一種索引優化手段。 比如現在我有一張表student表&#xff0c;字段有id&…

mysql的基礎命令

1.SQL的基本概念 SQL 是用于管理和操作關系型數據庫的標準編程語言。是所有關系型數據庫&#xff08;如 MySQL、PostgreSQL、Oracle 等&#xff09;的通用語言。 SQL語句分類 DDL: Data Defination Language 數據定義語言 CREATE&#xff0c;DROP&#xff0c;ALTER DML: Da…

Python爬蟲實戰:研究加密參數的定位方法,實現逆向解密

一、引言 在數字化信息時代,網絡數據成為重要的戰略資源。Python 以其簡潔的語法和豐富的庫生態,成為網絡爬蟲開發的首選語言。然而,隨著互聯網安全防護意識的增強,網站普遍采用加密技術保護數據接口,如請求參數加密、會話驗證、動態令牌等,這使得傳統爬蟲技術面臨巨大挑…

軸承表面缺陷檢測數據集VOC+YOLO格式3945張3類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;3945 標注數量(xml文件個數)&#xff1a;3945 標注數量(txt文件個數)&#xff1a;3945 標注…

【51單片機中斷】

目錄 配置流程 1.在IE寄存器中開啟總中斷通道和需要的某中斷通道 2.在TCON寄存器開啟所用中斷的觸發方式 3.使用中斷函數完成中斷 4.若需要中斷嵌套則在IP寄存器中配置 5.若需要使用串口的中斷&#xff0c;則配置SCON寄存器 6.代碼示例 配置流程 1.在IE寄存器中開啟總…

【機器學習】Anaconda安裝后打不開jupyter notebook(網頁不自動跳出)

文章目錄 一、遇到的問題&#xff1a;jupyter notebook網頁不自動跳出&#xff08;一&#xff09;輸入jupyter notebook命令&#xff08;二&#xff09;手動打開網頁 二、解決辦法&#xff1a;指定瀏覽器&#xff08;一&#xff09;找文件 jupyter_notebook_config.py&#xff…

數字格式化庫 accounting.js的使用說明

accounting.js 是一個用于格式化數字、貨幣和金額的輕量級庫&#xff0c;特別適合財務和會計應用。以下是其詳細使用說明&#xff1a; 安裝與引入 通過 npm 安裝&#xff1a; bash 復制 下載 npm install accounting 引入&#xff1a; javascript 復制 下載 const accounting …

DeepSpeed簡介及加速模型訓練

DeepSpeed是由微軟開發的開源深度學習優化框架&#xff0c;專注于大規模模型的高效訓練與推理。其核心目標是通過系統級優化技術降低顯存占用、提升計算效率&#xff0c;并支持千億級參數的模型訓練。 官網鏈接&#xff1a;deepspeed 訓練代碼下載&#xff1a;git代碼 一、De…

集星獺 | 重塑集成體驗:新版編排重構仿真電商訂單數據入庫

概要介紹 新版服務編排以可視化模式驅動電商訂單入庫流程升級&#xff0c;實現訂單、客戶、庫存、發票、發貨等環節的自動化處理。流程中通過循環節點、判斷邏輯與數據查詢的編排&#xff0c;完成了低代碼構建業務邏輯&#xff0c;極大提升訂單處理效率與業務響應速度。 背景…

AMO——下層RL與上層模仿相結合的自適應運動優化:讓人形行走操作(loco-manipulation)兼顧可行性和動力學約束

前言 自從去年24年Q4&#xff0c;我司「七月在線」側重具身智能的場景落地與定制開發之后 去年Q4&#xff0c;每個月都會進來新的具身需求今年Q1&#xff0c;則每周都會進來新的具身需求Q2的本月起&#xff0c;一周不止一個需求 特別是本周&#xff0c;幾乎每天都有國企、央企…

MATLAB中進行語音信號分析

在MATLAB中進行語音信號分析是一個涉及多個步驟的過程&#xff0c;包括時域和頻域分析、加窗、降噪濾波、端點檢測以及特征提取等。 1. 加載和預覽語音信號 首先&#xff0c;你需要加載一個語音信號文件。MATLAB支持多種音頻文件格式&#xff0c;如.wav。 [y, fs] audiorea…

JWT令牌驗證

一、JWT 驗證方式詳解 JWT&#xff08;JSON Web Token&#xff09;的驗證核心是確保令牌未被篡改且符合業務規則&#xff0c;主要分為以下步驟&#xff1a; 1. 令牌解析與基礎校驗 收到客戶端傳遞的 JWT 后&#xff0c;首先按 . 分割為三部分&#xff1a;Header、Payload、S…