前提: ストアド プロシージャは、毎日午後 10 時から午前 5 時まで 10 分ごとに実行されます。 実装: 1 つ目は、MySQL 自体を使用してイベント タイミング タスクを作成することです。これは、Navicat For MySQL またはその他のデータベース開発ツールを使用して実行できます。 1.Mysqlのイベントタイミングタスクに関連するコマンド、 1. イベントが有効になっているかどうかを確認します。 @@event_schedulerを選択します。 または SHOW VARIABLES LIKE 'event%'; 2. スケジュールされたタスクを開始します。 GLOBAL event_scheduler を 1 に設定します。 または SET GLOBAL event_scheduler = ON; 3. スケジュールされたタスクを作成します。 JOB_ALARMが存在する場合はイベントを削除します。 イベント JOB_ALARM の作成 10分ごとにスケジュールどおり する 始める if(date_format(current_time(),'%H')>22 || date_format(current_time(),'%H')<5) その後 PRO_ALARM() を呼び出します。 終了の場合; 終わり 4. ストアドプロシージャを作成します。 PRO_ALARMが存在する場合はプロシージャを削除します。 プロシージャ PRO_ALARM() を作成します。 始める userId VARCHAR(32) を宣言します。 #これは、カーソルが最後の行に到達した状況を処理するために使用されます。DECLARE s INT DEFAULT 0; #カーソルcursor_nameを宣言します(cursor_nameは複数行の結果セットです) cursor_data CURSORを宣言する tmp.USER_ID を選択 から ( 選択 e.USER_ID、 MAX(e.TIME_GMT) TIME_GMT イベントから GROUP BY e.USER_ID MAX(e.TIME_GMT) < UNIX_TIMESTAMP() - 60 * 30 の場合 AND MAX(e.TIME_GMT) > UNIX_TIMESTAMP() - 60 * 60 * 24) tmp 内部結合イベント t ON tmp.USER_ID = t.USER_ID かつ tmp.TIME_GMT = t.TIME_GMT ここで、TYPE_ID != '34001'; #終了マークを設定します。DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = 1; カーソルデータを開きます。 #現在のカーソルポインタのレコードを取得し、データ行を読み取って変数a、bに渡します FETCH カーソルデータ ユーザーIDに; #ループを開始し、ループ条件WHILE s <> 1 DOとしてカーソルが末尾に到達したかどうかを判断します。 EVENTS_NOTIFICATION VALUES (NULL、SYSDATE()、UNIX_TIMESTAMP(SYSDATE()) に挿入します。 UNIX_TIMESTAMP(SYSDATE()), '00000', ユーザーID, '1', '0'); #次の行のデータを読み取る FETCH cursor_data ユーザーIDに; 終了しながら; #カーソルを閉じます CLOSE cursor_data; 終わり; 2. Linuxのスケジュールタスクを使用する Linux スケジュールされたタスクの基本コマンド: スケジュールされたタスクを表示する: crontab -l */10 22-23,0-5 * * * mysql -u ユーザー名 -p パスワード -e "use db_name;CALL PRO_ALARM();" または、use db_name;CALL PRO_ALARM(); を SQL スクリプトに保存し、スケジュールされたタスクを次のように編集します。 */10 22-23,0-5 * * * mysql -u ユーザー名 -p パスワード < /application/Job_mysql.sql 要約する 上記は、Linux で MySQL のスケジュールされたタスクを実装する方法についての紹介です。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: セキュリティとパフォーマンスを向上させるためのNginxの最適な構成の詳細な説明
>>: TypeScript のマップされた型とより優れたリテラル型推論について説明します。
必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...
目次導入インストール表示フィールドフィルターソートキー導入Rhit は、標準フォルダー (gzip ...
序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...
これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...
エディターは 2 つのカテゴリに分かれていると思います。1 つは、即時レンダリングを実現するために左...
目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...
テーブルはかつて、Web ページの開発、つまりレイアウトにおいて非常に重要な役割を果たしていました。...
今日は、MySQL IN サブクエリの最適化に関するケーススタディを見ました。最初は少し懐疑的でした...
1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...
オリジナル: http://developer.yahoo.com/performance/rule...
しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...
目次1. 配列を結合する2. 配列をマージする(最初に) 3. 配列の複製4. 構造化分解割り当て5...
1. フォーム<form id="" name="" ...
ping は成功したがポートにアクセスできない場合のポート可用性検出の説明ポート可用性検出ツールの紹...
この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...