我有一项超时工作,一旦失败,它就会像自己一样调度另一个工作,以便它可以无限运行且不会重叠。然而,失败的工作留在队列中并被重新尝试,所以我最终有不止一个工作在运行,这破坏了整个目的。
以下是我处理工作失败的方法:
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 套接字服务器并订阅更新的通道,因此我想永远运行此作业,但在任何时候只运行此作业的一个实例。这就是为什么我希望它在没有任何尝试的情况下运行一次,一旦超时就调度另一个将运行并且循环将继续的实例。我想不出更好的方法来实现这一目标,还有其他方法可以做得更好吗?
我想构建一个移动应用程序,其中一个参与用户可以向其他参与者广播音频和视频,并记录会话.我知道可以使用MCU完成这项工作并专门对Kurento进行了大量研究.虽然我读了很多关于kurento的内容,但我在如何在IOS和Android上实现Kurento客户端方面遇到了麻烦.
我应该采取哪些步骤来实施kurento客户端应用程序?
例如,我可以使用http://www.webrtc.org/上提供的实现吗?
我正在尝试使用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
我想创建多个广播会话,(比如聊天室,因此可以有n个主人,每个主人向不同的观众群播放).
可以进行多个广播会话吗?如果是这样我怎么能实现这个目标?我可以做一些像github教程中给出的一对一调用的实现吗?
目前我的代码与Github上kurento-one2many-call提供的Node.js示例相同.
编辑:我一直在阅读代码和教程,并意识到这可以通过为每个"聊天室"引入不同的管道来实现.这是要走的路吗?
我正在为赌场监控软件编写一个模块。
一些上下文:
我从不同时间提取的视频中提取了几张图像。我有一个参考甲板总是在我知道大小的固定位置。假设相机的畸变、焦距和距离是未知的(这将是商业销售的软件包,因此这些参数是未知的)。
正在工作:
我已经应用了精明的边缘检测和 houghlines 来获得两个甲板的像素高度。此外,前面甲板的所有角落的坐标都是已知的,因为它始终处于相同方向的固定位置。
当参考平台与我尝试测量的平台的距离不同但离相机更近时,问题就开始了。在这种情况下,由于其中一副牌更靠近相机,因此尽管后面的一副牌包含更多牌,但两副牌似乎具有相同的像素高度。
这是一个视觉示例:
实际上,两副牌都有 52 张卡片,但靠近相机的那一张是 83 像素,而后面的那一张是 63 像素。
如何标准化我拥有的参考背景中的甲板的值?我发现了一个类似于在图像中移动时计算大小的问题,但这使用了我不熟悉的 openGL(如何将 2D 点反向投影到 3D?)。我正在尝试使用 Python 中的计算机视觉/图像处理库(我目前使用 ImageMagick 用于精明的边缘和霍夫线)来实现这一点(如果您认为 Python 不合适,我愿意接受关于使用另一种编程语言的建议)。
编辑:
总结我想要实现的目标:我想知道这两个对象如何比较高度。我如何将后面的一个缩放到它在前面一个旁边的大小,以便我可以比较两者?