做定时任务时,怎么解决服务器内存不够用啊?
<code> ignore_user_abort(true); set_time_limit(0); $b = str_repeat(' ', 10000); $i = 0; ob_start(); while (true) { sleep(1); file_put_contents('sf.txt', date('Y-m-d H:i:s') . $i . "\r\n", FILE_APPEND); echo $i,$b,'<br>'; ob_flush(); flush(); } </code>
<code> 没想到几秒钟 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133437441 bytes) in /data/home/hyu1658240001/htdocs/a.php on line 16 就这样了 啊啊啊啊 我只是想做一个定时任务,不断的检测超时支付的订单,以实现自动关闭超时订单,为什么不行啊??? 在线等大神指点啊,时间限制我已经取消了,是不是有个配置内存不受限制的啊? </code>
回复内容:
<code> ignore_user_abort(true); set_time_limit(0); $b = str_repeat(' ', 10000); $i = 0; ob_start(); while (true) { sleep(1); file_put_contents('sf.txt', date('Y-m-d H:i:s') . $i . "\r\n", FILE_APPEND); echo $i,$b,'<br>'; ob_flush(); flush(); } </code>
<code> 没想到几秒钟 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133437441 bytes) in /data/home/hyu1658240001/htdocs/a.php on line 16 就这样了 啊啊啊啊 我只是想做一个定时任务,不断的检测超时支付的订单,以实现自动关闭超时订单,为什么不行啊??? 在线等大神指点啊,时间限制我已经取消了,是不是有个配置内存不受限制的啊? </code>
你没确定脚本有问题?
单独跑脚本确定没问题?
先确定脚本的问题吧。
报错误不一定是内存不够用,可能是你逻辑问题,给你多少内存都会崩。
你这是死循环 改其他方案
file_put_contents函数是一直占用内存的
用linux的定时任务去执行php脚本
使用sleep(2)
,将程序休息几秒钟
我用的oracle job 存储过程,只不过频率低. 或者在使用订单时条件触发.毕竟只有使用时才需要考虑是否有效
用nodejs来跑
了解到你的目的是:能够自动关闭超时未支付的订单
可以试着换个思路来解决:
把定时任务改为: 每次用户点击订单相关页面时,检测下是否有超时未支付的订单。如果有,则将它们关闭。
crontab
拆分放到任务队列执行
1.你需要把程序改成php-cli方式运行,即试用php命令来执行。例如:/usr/local/php/bin/php index.php
2.把脚本里面while循环更改掉,试用crontab来执行该脚本,当php脚本执行完后,整个php脚本的运行内存就被回收就不会出现内存溢出的问题了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.
