小编Vig*_*igs的帖子

Laravel Artisan CLI安全地停止守护程序队列工作程序

为了处理大量的工作,我运行可变数量的队列工作者,具体取决于完成的工作量.我不想在完成我们认为合适的时间段内完成需要完成的工作之外运行更多的工人.

目前,我启动了5个守护程序队列工作程序用于测试目的,但是在生产中,这个数字可能介于25到100名工作人员之间,可能更多.我知道在部署时,我必须首先通过使用框架将框架置于维护模式来停止队列工作php artisan down,因为该--daemon标志导致框架仅在工作程序启动时加载,因此新代码在部署期间不会生效工人重新开始.

如果由于某种原因我需要停止工作,我可以将应用程序置于维护模式,php artisan down这将导致工作人员在完成当前工作(如果他们正在工作)之后死亡.但是,有时我可能会在不将整个应用程序置于维护模式的情况下杀死工作人员.

有没有一种安全的方法来阻止工人继续处理他们当前的工作,然后在不将整个应用程序置于维护模式的情况下死亡?

基本上我需要的是一个php artisan queue:stop,表现得像php artisan queue:restart,但一旦完成工作就不会重启工人.

我在那里期待有一个类似的php artisan queue:stop命令可以做到这一点,但似乎并非如此.

使用ps aux | grep php我能够为工作者获取进程ID,并且我可以通过这种方式终止进程,但我不想在处理作业的过程中终止进程.

谢谢.

php queue daemon laravel artisan

17
推荐指数
2
解决办法
2万
查看次数

MYSQL存储过程:变量声明和条件语句

我查看了大量的教程,手册和文档,但我仍然无法使用它.

我正在尝试使用phpMyAdmin创建存储过程.

我似乎无法在这里找到错误,sql错误是如此模糊......

CREATE PROCEDURE insertToonOneShot(IN locale CHAR(2), IN name VARCHAR(16), IN realm VARCHAR(24), IN faction CHAR(1), IN toon_level INT, IN class_name INT)
BEGIN
DECLARE @realmID INT;
DECLARE @classID INT;
DECLARE @toonID INT;
SET @realmID = SELECT id FROM realms WHERE realms.name = realm;
SET @classID = SELECT id FROM classes WHERE classes.name = class_name;
IF NOT @realmID IS NULL AND NOT @classID IS NULL AND @toonID IS NULL THEN
INSERT INTO 
toon (`locale`, `name`, `realm_id`, `faction`, `level`, `class_id`)
VALUES …
Run Code Online (Sandbox Code Playgroud)

mysql sql stored-procedures variable-declaration

12
推荐指数
3
解决办法
8万
查看次数

如何使用 Spring Boot RSocket 服务器支持 WebSocket 传输?

TLDR:配置暴露支持 WebSocket 传输的 RSocket 接口的 Spring Boot 应用程序需要什么?


我正在同时学习 RSocket 和 Spring Boot,所以请多多包涵。

在我的努力中,我已经能够构建一个非常简单和人为的 Spring Boot 应用程序实现,它使用第二个使用 RSocket 作为协议的 Spring Boot 应用程序提供/公开的 API,但是,我只能在以下情况下实现这一点使用TcpClientTransport.

从我的角度来看,WebsocketTransport它更有可能被使用并且对客户端-> 服务器架构更有用,但是,我还没有找到任何关于如何正确配置使用 WebSocket 作为接受 RSocket 消息的 Spring Boot 应用程序的工作示例或文档运输。

奇怪的是,在我的测试中,我的消费者(客户端)似乎确实建立了到服务器/生产者的 WebSocket 连接,但是,“握手”似乎挂起并且连接从未完全建立。我已经对 JavaScript 库(rsocket-websocket-client、rsocket-rpc-core 等)和 Java 库(io.rsocket.transport.netty.client.WebsocketClientTransport)进行了测试,并且服务器似乎表现出相同行为不管。

重申一下,使用 TCPTransport 我能够连接到服务器并调用请求就好了,但是在使用WebsocketTransport连接时从未建立。

一个旨在通过WebsocketClientTransport过去消费spring-boot-starter-rsocket作为依赖项支持 RSocket 的 Spring Boot 应用程序需要什么?

服务器


pom.xml

...

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.M5</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

...

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc websocket spring-boot rsocket

5
推荐指数
1
解决办法
2658
查看次数

PHP:如何将变量动态分配到数组中

这让我很伤心,对于我的一生,我似乎无法弄清楚如何让它发挥作用,或者为什么它首先不起作用。

这是我想要做的:

这是我的变量声明:

$locale = 'US';
$realm = 'magtheridon';
$character = 'billymayys';
Run Code Online (Sandbox Code Playgroud)

这是我的数组声明:

$my_array = ( 'L' => $locale, 'R' => $realm, 'C' => $character );
Run Code Online (Sandbox Code Playgroud)

我是 php 的新手,据我所知,这应该创建一个可以打印到的数组:

Array( 
      [L] => US, 
      [R] => magtheridon, 
      [C] => billymayys, 
      );
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。

创建数组的正确方法是什么,我可以命名谁的索引,然后将变量分配给这些索引的值?

数组声明:

$my_array = ( 'L' => 'US', 'R' => 'magtheridon', 'C' => 'billymayys' );
Run Code Online (Sandbox Code Playgroud)

有效,但我不明白为什么我不能使用变量动态分配值。

请帮忙!谢谢。

php arrays variables indexing

3
推荐指数
1
解决办法
833
查看次数

Laravel-在登录时销毁现有会话

有没有一种方法可以检查用户在另一台计算机上是否已有有效的会话?

我想做的是,当用户登录时,销毁他们可能已经拥有的其他会话,这样,如果他们忘记从校园或工作场所的计算机注销,然后又在家登录,它将销毁其他2个会话,因此它们不再登录了?

Facebook以某种方式采用了这种方式。

到目前为止,我唯一的想法就是要达到这种效果:

$user = User::find(1); // find the user
Auth::login($user); // log them in 
Auth::logout(); // log them out hoping that it will destroy all their sessions on all machines
Auth::login($user); // log them in again so they have a valid session on this machine
Run Code Online (Sandbox Code Playgroud)

我还没有机会进行测试,也不知道是否Auth::login($user);会破坏该用户的所有会话,或者仅破坏当前会话。

谢谢!

php authentication session laravel

3
推荐指数
1
解决办法
9080
查看次数

PHP Url编码未正确编码

我正在尝试编码以下字符串: Peôn

根据:http://meyerweb.com/eric/tools/dencoder/字符串应该包含在:Pe%C3%B4n

当我用urlencode($name)我得到Pe%F4n

SOOOO迷失了.

我试图以下列方式使用编码的字符串:

失败:

http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%F4n?fields=statistics

作品:

http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%C3%B4n?fields=statistics

mycode的:

$name = mysqli_real_escape_string($connection, $_POST['name']);
$name = urlencode($name);
Run Code Online (Sandbox Code Playgroud)

编辑:

$name = $_POST['name'];
$realm = mysqli_real_escape_string($connection, $_POST['realm']);
$locale = mysqli_real_escape_string($connection, $_POST['locale']);
$toon = query_blizz_toon($name, $realm, $locale);

function query_blizz_toon($name, $realm, $locale){  
    $realm = urlencode(stripslashes($realm));
    $name = urlencode($name);
    $q = 'http://'.$locale.'.battle.net/api/wow/character/'.$realm.'/'.$name.'?fields=statistics';
    echo $q;
    $character = @file_get_contents($q);
    $character = json_decode($character);
    return $character;
}
Run Code Online (Sandbox Code Playgroud)

echo $q .OUPUTS: http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%F4n?fields=statistics

即使没有转义,仍然会得到错误的编码...:/

编辑:

根据这个网站:http://www.degraeve.com/reference/urlencoding.php

%F4是正确的编码ô...

php mysql sql function utf-8

-1
推荐指数
1
解决办法
205
查看次数