小编Ben*_*Ben的帖子

Laravel:是否可以在捕获异常时记录堆栈跟踪并继续执行?

Laravel 在异常捕获时具有可读的日志和堆栈跟踪,例如:

production.ERROR: Command "test" is not defined.

Did you mean this?
    make:test {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"test\" is not defined.

Did you mean this?
    make:test at {root}/vendor/symfony/console/Application.php:618)
[stacktrace]
#0 {root}/vendor/symfony/console/Application.php(229): Symfony\\Component\\Console\\Application->find('test')
#1 {root}/vendor/symfony/console/Application.php(148): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#2 {root}/vendor/laravel/framework/src/Illuminate/Console/Application.php(88): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#3 {root}/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#4 {root}/artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#5 {main}
"}
Run Code Online (Sandbox Code Playgroud)

问题是:是否可以自己捕获异常,并记录相同格式的stacktrace,并继续程序执行。到目前为止,我正在记录一个Log::error(json_encode(debug_backtrace()));非常丑陋且难以追踪的错误。示例代码:

try {
    foo();
} catch(\Exception $e) {
    Log::error(json_encode(debug_backtrace()));
}
bar();
Run Code Online (Sandbox Code Playgroud)

php error-handling exception laravel

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

在一组数中找到组合的有效算法,其总和等于已知数

假设有一组数字

1,2,3,4,5,6,7,8,9,10

我想在数字集合中找出几个组合,使得它的总和等于已知数字,例如,18.我们可以发现5,6,7是匹配的(5 + 6 + 7 = 18) .

组合中的数字不能重复,并且组中的数字可能不连续.

我写了一个C#程序来做到这一点.该程序是随机的,以获取数字以形成组合并检查组合的总和是否等于已知数.但是,程序发现的组合可能会重复,这会使进度无效.

我想知道是否有任何有效的算法来找出这样的组合.

这是我的代码的一部分.

        int Sum = 0;
        int c;
        List<int> Pick = new List<int>();
        List<int> Target = new List<int>() {some numbers}

        Target.Sort();

            while (!Target.Contains(Sum))
            {
                if (Sum > Target[Target.Count - 1])
                {
                            Pick.Clear();
                            Sum = 0;

                }
                while (true)
                {
                    if (Pick.IndexOf(c = Math0.rand(0, Set.Count - 1)) == -1)
                    {
                        Pick.Add(c);
                    }

                    //Summation Pick
                    Sum = 0;
                    for (int i = 0; i < Pick.Count; i++)
                        Sum += Set[Pick[i]]; …
Run Code Online (Sandbox Code Playgroud)

c#

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

如果 supervisorctl 重新加载/重启,主管会优雅地重启所有队列工作人员吗?

当此命令php artisan queue:restart运行时,所有队列工作器都会正常重启。

但是,如果这些命令supervisorctl reload还是supervisorctl restart运行,后面运行的命令是什么?他们会强行杀死队列工作人员并重新启动工作人员吗?

有时,当 supervisor 配置更改时,supervisor 需要重新加载并重新启动。

如果主管没有优雅地启动队列工作人员,有什么解决方法可以使它不会强行杀死工作人员,这样我就不需要做一些清理工作?

supervisord laravel

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

标签 统计

laravel ×2

c# ×1

error-handling ×1

exception ×1

php ×1

supervisord ×1