thinkphp5队列的报错 [think\exception\ThrowableError] Type error: count(): Argument #1 ($value) must be

一.thinkphp5队列执行 php think queue:work --queue UploadJob 的报错 [think\exception\ThrowableError] Type error: count(): Argument #1 ($value) must be of type Countable|array, null given, 修改代码 thinkphp\library\think\process\pipes\Windows.php, line 199~221之间的数据


namespace think\process\pipes;

use think\Process;

class Windows extends Pipes

.....


	if (null !== $w && is_array($r) && 0 < count($r)) {
            $data = '';
            while ($dataread = fread($r['input'], self::CHUNK_SIZE)) {
                $data .= $dataread;
            }

            $this->inputBuffer .= $data;

            if (false === $data || (true === $close && feof($r['input']) && '' === $data)) {
                $this->input = null;
            }
        }

         if (null !== $w && is_array($r) && 0 < count($w)) {
            while (strlen($this->inputBuffer)) {
                $written = fwrite($w[0], $this->inputBuffer, 2 << 18);
                if ($written > 0) {
                    $this->inputBuffer = (string) substr($this->inputBuffer, $written);
                } else {
                    break;
                }
            }
        }
private function write($blocking, $close)
    {
        if (empty($this->pipes)) {
            return;
        }

        $this->unblock();

        // $r = null !== $this->input ? ['input' => $this->input] : null;
        $r = null !== $this->input ? ['input' => $this->input] :  [];
        $w = isset($this->pipes[0]) ? [$this->pipes[0]] : null;
        $e = null;
 // if (null !== $w &&  0 < count($r)) {
        if (null !== $w && 0< is_array($r)? count($r):0 ) {
            $data = '';
            while ($dataread = fread($r['input'], self::CHUNK_SIZE)) {
                $data .= $dataread;
            }

            $this->inputBuffer .= $data;

            if (false === $data || (true === $close && feof($r['input']) && '' === $data)) {
                $this->input = null;
            }
        }

 // if (null !== $w  && 0 < count($w)) {
        if (null !== $w  && 0< is_array($w)? count($w):0) {
            while (strlen($this->inputBuffer)) {
                $written = fwrite($w[0], $this->inputBuffer, 2 << 18);
                if ($written > 0) {
                    $this->inputBuffer = (string) substr($this->inputBuffer, $written);
                } else {
                    break;
                }
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值