shell定时执行脚本

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curl -sS –connect-timeout 10 -m 60 ‘http://域名/api/drepay/compensatorypay’
echo “—————————————————————————-”
endDate=`date +”%Y-%m-%d %H:%M:%S”`
echo “★[$endDate] Successful”
echo “—————————————————————————-“

守护进程工具

supervisor

[program:UpdateOrderConsumersCli]
command=php /www/wwwroot/Queue/Consumers/UpdateOrderConsumersCli.php ;启动时命令行执行操作
autostart=true ;是否随supervisor启动
autorestart=true ;是否在挂了之后重启,意外关闭后会重启,比如kill掉!
startsecs=5 ;持续运行多久,认为运行成功
startretries=3 ;启动尝试次数
stderr_logfile=/tmp/UpdateErrorOrderConsumersCli.log ;标准输出的位置
stdout_logfile=/tmp/UpdateOrderConsumersCli.log ;标准错误输出的位置

微信小程序上传阿里云OSS PostObject错误及排查

  1. 小程序端

upload.wxml

<view bindtap=’onChooseImage’>上传头像</view>

upload.js

Page({

onChooseImage: function () {

var that = this;

wx.chooseImage({

success(res) {

const tempFilePaths = res.tempFilePaths

that.getCloudCdnParams(tempFilePaths[0])

}

})

},

//获取签名oss鉴权信息

getCloudCdnParams: function (filePath) {

var that = this;

var dataUrl = ‘服务端获取签名接口’;

var params = new Object();

wx.request({

url: dataUrl,

method: “post”,

header: {

‘content-type’: ‘application/x-www-form-urlencoded’

},

success: function (res) {

that.uploadFileFun(res.data, filePath)

}

})

},

// 上传图片

uploadFileFun: function (result, filePath) {

//console.log(result)

var that = this;

var aliyunFileKey = result.dir + new Date().getTime() + Math.floor(Math.random() * 150) + ‘.png’;

console.log(aliyunFileKey)

wx.uploadFile({

url: result.host,

filePath: filePath,

name: ‘file’,

/**上传的参数**/

formData: {

name: filePath,

key: aliyunFileKey,

policy: result.policy,

OSSAccessKeyId: result.accessid,

success_action_status: “200”,

signature: result.signature,

},

success: function (res) {

/**这边上传成功后要自己拼接文件的地址**/

console.log(result.cdnurl + aliyunFileKey)

},

fail: function (res) {

console.log(res)

}

})

},

})

OSS PostObject错误及排查

https://yq.aliyun.com/articles/58524

 

PHP聊天室框架

https://www.workerman.net/workerman-chat

PHP聊天室框架

workerman-chat是一个以workerman作为服务器容器,使用PHP开发的基于Websocket协议的一个可分布式部署的聊天室框架。

workerman-chat采用gateway workers 进程模型。gateway只负责网络IO,全异步非阻塞,每个gateway进程都可以同时接受上万客户端连接。 workers采用的是PHP开发者所熟悉的同步模型,并提供了开发者基本的接口 onConnect、onMessage、onClose、sendToClient、sendToAll等方法。 开发者只要在onConnect、onMessage、onClose三个方法中添加上自己的业务逻辑即可,开发维护非常简单。

由于采用的是gateway workers 进程模型,gateway和workers之间是无状态的,gateway和workers可以分别部署在不同的物理机上,所以扩容和升级都非常方便。 workerman-chat也非常适合游戏后台开发。

查看php聊天室demo请点击这里

下载

下载PHP 聊天室框架

Fork on Github  下载ZIP压缩文件 下载55619次

特性

  • 使用PHP开发
  • PHP多进程
  • gateway workers进程模型
  • 支持libevent事件轮询库,支持高并发
  • 默认使用Websocket协议,更小带宽,更好性能
  • 支持分布式部署,可横向扩容
  • 客户端跨浏览器支持(需要浏览器支持html5或者flash)
  • 多房间支持
  • 支持私聊
  • 支持心跳检测
  • 同样非常适合游戏后台开发

linux环境安装启动

首先:参考手册检查/安装workerman环境

1、下载workerman-chat,并解压缩到任意目录

2、启动workermanphp start.php start -d如下图。

php聊天室启动示意图3、浏览器访问端口http://ip:55151或者http://域名:55151,例如 http://workerman.net:55151如图:(如果无法访问请检查服务器防火墙)