thinkPhp使用框架自带队列think-queue
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkPhp使用框架自带队列think-queue相关的知识,希望对你有一定的参考价值。
参考技术A 由于框架版本原因可以选择适合的版本composer require topthink/think-queue
由于我是tp框架5.1的,所以选择了think-queue 1.1.6
composer require topthink/think-queue 1.1.6
判断安装成功
php think queue:work -h
看了网上其他的一些帖子说配置文件在统一目录下/config/queue.php
但是,我这边没有生成,但是根据Queue.php源码可以看出,配置是在config.php文件中的一个键值对
数据表默认数据
ThinkPHP框架下如何用PHP自带的ZipArchive类打包压缩文件
public function downloadzip(){
$catid = $this->request->param(‘catid/d‘, 0);
$id = $this->request->param(‘id/d‘, 0);
$category = getCategory($catid);
if (empty($category)) {
$this->error(‘该栏目不存在!‘);
}
$modelid = $category[‘modelid‘];
$fieldList = $this->Cms_Model->getFieldList($modelid, $id);
$attatchs=$fieldList[‘uploadmaterial‘][‘value‘];
$attatchsarray=explode(‘,‘,$attatchs);
$zip=new \ZipArchive();
$downpath=[];
$timefils=date("Ymd",time());
if(!file_exists(‘uploads/zip/‘.$timefils)){
mkdir (‘uploads/zip/‘.$timefils,0777,true);
}
$zipName =‘uploads/zip/‘.$timefils.‘/download‘.$id.‘.zip‘;
if($zip->open($zipName,\ZipArchive::OVERWRITE | \ZipArchive::CREATE)==TRUE){
foreach($attatchsarray as $key=>$value){
$downpath=dirname(ROOT_PATH).get_file_path($value);
$downpathname=get_file_name($value); //改文件一定得为本地地址不可以为域名地址
$zip->addFile($downpath, basename($downpathname)); //basename($downpathname)这个是压缩包里面的文件名称
}
}
$zip->close();
if(!file_exists($zipName)){
$this->error(‘文件创建失败‘);
}
header(‘Content-Type: application/zip‘);
header(‘Content-disposition: attachment; filename=‘.$zipName);
header(‘Content-Length: ‘ . filesize($zipName));//文件大小
readfile($zipName);
}
以上是关于thinkPhp使用框架自带队列think-queue的主要内容,如果未能解决你的问题,请参考以下文章