小编PU2*_*014的帖子

Laravel 一旦失败就删除作业

我有一项超时工作,一旦失败,它就会像自己一样调度另一个工作,以便它可以无限运行且不会重叠。然而,失败的工作留在队列中并被重新尝试,所以我最终有不止一个工作在运行,这破坏了整个目的。

以下是我处理工作失败的方法:

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

public function handle()
{
    //infinite websocket listening loop
}

public function failed(Exception $exception)
{
    $this::dispatch()->onQueue('long-queue');
    $this->delete();
}
Run Code Online (Sandbox Code Playgroud)

$this->delete()来自InteractsWithQueue特质。我究竟做错了什么?

编辑:我使用地平线来运行作业,这里是自定义队列的配置 config/horizon.php

'supervisor-long' => [
    'connection' => 'redis-long',
    'queue' => ['long-queue'],
    'balance' => 'simple',
    'processes' => 3,
    'tries' => 1,
    'timeout' => 3600,
],
Run Code Online (Sandbox Code Playgroud)

我正在调度的工作是创建一个 Thruway 客户端以连接到 Web 套接字服务器并订阅更新的通道,因此我想永远运行此作业,但在任何时候只运行此作业的一个实例。这就是为什么我希望它在没有任何尝试的情况下运行一次,一旦超时就调度另一个将运行并且循环将继续的实例。我想不出更好的方法来实现这一目标,还有其他方法可以做得更好吗?

php redis laravel laravel-queue laravel-jobs

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

Webrtc Mobile kurento客户端

我想构建一个移动应用程序,其中一个参与用户可以向其他参与者广播音频和视频,并记录会话.我知道可以使用MCU完成这项工作并专门对Kurento进行了大量研究.虽然我读了很多关于kurento的内容,但我在如何在IOS和Android上实现Kurento客户端方面遇到了麻烦.

我应该采取哪些步骤来实施kurento客户端应用程序?

例如,我可以使用http://www.webrtc.org/上提供的实现吗?

android ios webrtc kurento

4
推荐指数
1
解决办法
4616
查看次数

AppRTC安卓行人穿越道

我正在尝试使用Android上的Crosswalk运行AppRTC HTML5演示.但由于某种原因,我无法让麦克风工作.

我从GitHub获得了AppRTC HTML5演示源,并按照说明进行构建.完成后,我使用生成的Chrome应用输出并编辑了appwindow.html要包含的文件cordova.js,并修复了包含文件的路径.

最后,我使用Cordova和crosswalk插件构建(使用cordova build命令).该应用程序工作并连接到服务器,视频工作得很好,从PC接收音频很好,但不发送来自移动设备的音频.我不确定有什么问题,请帮助修复音频.

下面是Cordova配置文件.

config.xml中

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.test.xapprtc" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>xAppRtc</name>
    <description>
        AppRTC on crosswalk.
    </description>
    <author email="test@test.com" href="http://test.com">
        Test
    </author>
    <content src="appwindow.html" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="Orientation" value="portrait" />
    <preference name="EnableViewportScale" value="true" />
    <preference name="StatusBarOverlaysWebView" value="false" />
    <plugin name="cordova-plugin-whitelist" version="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform …
Run Code Online (Sandbox Code Playgroud)

webrtc cordova hybrid-mobile-app apprtcdemo crosswalk-runtime

4
推荐指数
2
解决办法
885
查看次数

Kurento多个一对多广播会话

我想创建多个广播会话,(比如聊天室,因此可以有n个主人,每个主人向不同的观众群播放).

可以进行多个广播会话吗?如果是这样我怎么能实现这个目标?我可以做一些像github教程中给出的一对一调用的实现吗?

目前我的代码与Github上kurento-one2many-call提供的Node.js示例相同.

编辑:我一直在阅读代码和教程,并意识到这可以通过为每个"聊天室"引入不同的管道来实现.这是要走的路吗?

kurento

4
推荐指数
1
解决办法
2630
查看次数

测量图像中一副扑克牌的高度

我正在为赌场监控软件编写一个模块。

一些上下文:

我从不同时间提取的视频中提取了几张图像。我有一个参考甲板总是在我知道大小的固定位置。假设相机的畸变、焦距和距离是未知的(这将是商业销售的软件包,因此这些参数是未知的)。

正在工作:

我已经应用了精明的边缘检测和 houghlines 来获得两个甲板的像素高度。此外,前面甲板的所有角落的坐标都是已知的,因为它始终处于相同方向的固定位置。

当参考平台与我尝试测量的平台的距离不同但离相机更近时,问题就开始了。在这种情况下,由于其中一副牌更靠近相机,因此尽管后面的一副牌包含更多牌,但两副牌似乎具有相同的像素高度。

这是一个视觉示例:

实际上,两副牌都有 52 张卡片,但靠近相机的那一张是 83 像素,而后面的那一张是 63 像素。

示例照片

如何标准化我拥有的参考背景中的甲板的值?我发现了一个类似于在图像中移动时计算大小的问题,但这使用了我不熟悉的 openGL(如何将 2D 点反向投影到 3D?)。我正在尝试使用 Python 中的计算机视觉/图像处理库(我目前使用 ImageMagick 用于精明的边缘和霍夫线)来实现这一点(如果您认为 Python 不合适,我愿意接受关于使用另一种编程语言的建议)。

编辑:

总结我想要实现的目标:我想知道这两个对象如何比较高度。我如何将后面的一个缩放到它在前面一个旁边的大小,以便我可以比较两者?

python math image-processing computer-vision photogrammetry

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