6月13日任务

12.21 php-fpm的pool

首先看一下配置

# cat /usr/local/php-fpm/etc/php-fpm.conf

php-fpm默认使用一个pool,如果多个网站使用一个pool,当其中一个站点有问题把pool资源耗尽,那其他站点也会502,所以有必要把每个站点隔离开来,每个站点使用单独的pool。

我们可以在配置文件中继续增加内容来设置新的pool

# vim /usr/local/php-fpm/etc/php-fpm.conf

检查语法 重启php-fpm

查看进程

# ps aux |grep php-fpm

那怎么去用这个池子呢?

# cd /usr/local/nginx/conf/vhost/

#cat  test.com.conf    //监听/tmp/php-fcgi.sock

# vim aaa.com.conf

这样两个站点就隔离开了,pool进程最多50个,www资源耗尽不会影响aming


我们还可以这样设置来达到同样的效果

#vim /usr/local/php-fpm/etc/php-fpm.conf   //在global内添加一行include =/usr/local/php-fpm/etc/php-fpm.d/*.conf

# mkdir /usr/local/php-fpm/etc/php-fpm.d/

#cd !$

然后把关于php-fpm.conf中关于pool的设置拆出来分别放到,新建的www.conf和aming.conf中


配置完成要检查语法,重启

# /usr/local/php-fpm/sbin/php-fpm -t

# /etc/init.d/php-fpm restart



12.22 php-fpm慢执行日志

lnmp可以分析php的慢执行日志

# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf  //添加2行配置

request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log

一般设置的是2秒,这里做试验设置为1秒

检查语法重启服务

# /usr/local/php-fpm/sbin/php-fpm -t

# /etc/init.d/php-fpm restart

查看日志

# ls /usr/local/php-fpm/var/log/

日志是空的,因为我们没有超过1秒的



模拟一个慢执行的php



# vim /data/wwwroot/test.com/sleep.php    //创建一个php文件,写入下面内容(休眠2秒钟)



访问

# curl -x127.0.0.1:80 test.com/sleep.php


查看日志

# cat  /usr/local/php-fpm/var/log/www-slow.log

日志不仅告诉我们哪个文件执行慢,还告诉我们这个文件的第三行执行慢,这就是慢执行日志的功能。


12.23 open_basedir



在Tomcat 10 中集成 Quartz 定时任务,如果你想在12月13早上4点运行一次定时任务,并且后续每天重复这个时间点运行六次,你需要创建一个Quartz Job Scheduler配置。以下是一个简单的步骤说明: 1. 首先,在项目中添加Quartz依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖: ```xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>3.3.0</version> </dependency> ``` 2. 创建一个Job类,继承自`org.quartz.Job`,并在其中编写你要执行的具体业务逻辑。 ```java public class MyTask implements Job { // 编写你的业务逻辑... } ``` 3. 实现`org.quartz.Trigger`接口,这里使用简单触发器(SimpleTrigger)来设置每天重复运行的时间点。设置cron表达式为"0 00 04 13 12 *",这表示每个小时的第4分钟,每月的13,只有12月份有效,每天重复六次。 ```java import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; import org.quartz.SimpleTriggerBuilder; import org.quartz.Trigger; public Trigger createTrigger() { CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 00 04 13 12 ?"); return SimpleTriggerBuilder.newTrigger() .withIdentity("myTaskTrigger", "defaultGroup") .startAt(Date.from(LocalDate.of(2023, 12, 13).atStartOfDay(ZoneId.systemDefault()).toInstant())) .withSchedule(scheduleBuilder) .build(); } ``` 4. 在Spring Boot应用中,你可以将Job和Trigger注册到Quartz Scheduler: ```java @Configuration @EnableScheduling public class QuartzConfig { @Autowired private SchedulerFactoryBean scheduler; @PostConstruct public void initScheduler() throws SchedulerException { MyTask myTask = new MyTask(); // 获取你的Job实例 Trigger trigger = createTrigger(); scheduler.getScheduler().scheduleJob( JobBuilder.newJob(MyTask.class).withIdentity("myTask", "default").build(), trigger); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值