一.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 ] : [ ] ;
$w = isset ( $this -> pipes [ 0 ] ) ? [ $this -> pipes [ 0 ] ] : null ;
$e = null ;
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 < 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 ;
}
}
}