小编Rah*_*rma的帖子

用于队列和 api 的嵌套公牛分离过程

我有一个nestjs暴露一些 RESTAPI的应用程序。其中一个APIs 触发处理某些任务的作业。问题在于,当作业被触发时,应用程序停止服务 REST 请求,这会导致负载均衡器的运行状况检查失败。我按照自述文件末尾给出的方法启动一个单独的子进程来处理作业。但是,该作业不会在子进程中启动,并且API请求会停止。

这是我的工作:

import {
  BullQueueEvents,
  OnQueueActive,
  OnQueueEvent,
  Process,
  Processor,
} from 'nest-bull';
import { Job } from 'bull';
import { Logger } from '@nestjs/common';
import { AService } from './a-service';
import { AJobInterface } from '../AJobInterface';

@Processor({ name: 'a_queue' })
export class AJob {
  private readonly logger = new Logger('AQueue');

  constructor(private readonly service: AService) {}

  @Process({
    name: 'app',
    concurrency: 1
  })
  processApp(job: Job<AJobInterface>) {
    console.log('CHILD: ', …
Run Code Online (Sandbox Code Playgroud)

node.js typescript nestjs bull.js

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

调用 UpdateService 操作时 AWS ECS InvalidParameterExcpetion

我一直在尝试使用 jenkins 为我的 ECS 集群设置 CI/CD。我按照这个博客做了同样的事情。但我收到这个错误:

调用 UpdateService 操作时发生错误 (InvalidParameterException):修订号无效。数量:49

用于更新服务的命令是:

aws ecs update-service --cluster ${CLUSTER_NAME} --service ${SERVICE_NAME} --task-definition ${TASK_FAMILY}:${TASK_REVISION} --desired-count ${DESIRED_COUNT}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,如果我从 cli 运行命令并输入所有值,它会成功运行。我不确定该命令有什么问题。

编辑1:该修订存在于 AWS 的任务定义中。我可以从 AWS 控制台看到该特定修订。正如我已经提到的,该命令使用该特定修订版从 cli 成功运行。

编辑2:我可以使用列出任务定义aws ecs list-task-definitions,并且在列表中看到该特定任务定义,但我无法使用 ${TASK_FAMILY}:${TASK_REVISION} 描述该任务定义。它给了我同样的错误。

deployment amazon-web-services amazon-ecs jenkins docker

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

检查矩阵中重复行的高效算法

给定矩阵M的整数.检查矩阵中两行是否相同.给出最佳方法.

Example:
[{1, 2, 3},
 {3, 4, 5},
 {1, 2, 3}]
Run Code Online (Sandbox Code Playgroud)

在上面的矩阵中,第1行和第3行是相同的.

可能解决方案

Given a matrix, we can convert each row in a string (example using to_string()
method of C++ and concatenating each element in a row to a string). We do this
for every row of the matrix, and insert it in a table that is something like
(map<string, int> in C++). And hence, duplicate row can be checked in O(mn) time
for an mxn matrix.
Run Code Online (Sandbox Code Playgroud)

我能做得比这更好吗?或者,上面的方法有什么缺陷?

algorithm matrix time-complexity

7
推荐指数
1
解决办法
1196
查看次数

难以理解解决Spoj DQuery的方法

我试图在SPOJ上解决这个问题:http: //www.spoj.com/problems/DQUERY/

但经过几个小时的尝试解决后,我搜索了一个可能的提示.我找到了一种方法:http : //apps.topcoder.com/forums/;jsessionid=5A69961AF7DF7FBB00FDFE13B80B5D2E?module=Thread&threadID=627423&start=0&mc=13

但我无法正确理解它.任何人都可以帮助我理解这种方法.

algorithm

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

Bootstrap 4 DateTimePicker 图标未显示

我在 Rails 5.2.0 上。我正在使用以下代码实现引导日期时间选择器:

  <div class="form-group">
    <div class='input-group date' id='datetimepicker1' data-target-input='nearest'>
      <input type='text' class="form-control datetimepicker-input" data-target="#datetimepicker1" name="params['start_time']" />
      <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
        <div class="input-group-text"><i class="fa fa-calendar"></i></div>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

宝石档案:

gem 'momentjs-rails', '~> 2.20', '>= 2.20.1'
gem 'bootstrap', '~> 4.1.1'
gem 'bootstrap4-datetime-picker-rails'
gem 'jquery-rails'
Run Code Online (Sandbox Code Playgroud)

应用程序.js

//= require jquery3
//= require jquery_ujs
//= require turbolinks
//= require popper
//= require moment
//= require bootstrap
//= require tempusdominus-bootstrap-4.js
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

应用程序.scss

@import "bootstrap";
@import "tempusdominus-bootstrap-4.css";
Run Code Online (Sandbox Code Playgroud)

我遇到了一个问题,即日期时间选择器的页面上没有显示任何图标。 在此处输入图片说明

附上截图供参考。任何人都可以指出这里的任何错误吗?

提前致谢。

javascript css ruby-on-rails datetimepicker twitter-bootstrap

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

如何在 chrome 扩展清单 v3 的选项卡中播放音频流

为了从清单 v2 中的选项卡捕获输出音频流,可以chrome.tabCapture.capture在后台脚本中使用 API 来获取流。但是,在清单 v3 中,tabCapture 已移至前台,并且在后台脚本中不可用。它在内容脚本中都不可用。

在尝试了一些事情之后,我终于可以tabCapture在弹出脚本中工作了。但是,在我的用例中,弹出窗口无法长时间保持打开状态以捕获流。相反,我偶然发现了它给我一个streamIdgetMediaStreamId的方法。tabCapture所以,我想出了这个:

chrome.tabs.query({
  active: true,
  currentWindow: true
}, (tabs) => {
  var tab = tabs[0];
  chrome.tabCapture.getMediaStreamId({consumerTabId: tab.id}, (streamId) => {
    chrome.tabs.sendMessage(tab.id, { action: 'streamId', streamId: streamId });
  });
});
Run Code Online (Sandbox Code Playgroud)

在文件中存在的上述脚本中popup.js,获取streamId后,我将其发送到内容脚本。我一直专注于如何从该streamId 创建流,以便可以捕获/记录该流。文档提到了使用getUserMedia()但我在那里并不幸运。这是我可以通过其他问题的一些帮助想出的(但它不起作用,我收到此错误DOMException: Error starting tab capture):

navigator.mediaDevices.getUserMedia({
  audio: {
    mandatory: {
      chromeMediaSource: 'tab',
      chromeMediaSourceId: streamId
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

我试图找出如何使 tabCapture 在清单 v3 中工作。

javascript google-chrome-extension getusermedia mediadevices chrome-extension-manifest-v3

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

有条件地投影匹配数组项

我有一个questions用这样的文档命名的集合:

{
    "formats": [
        {
            "language_id": 1,
            "text": "question text1"
        },
        {
            "language_id": 2,
            "text": "question text 2"
        }
    ],
    "qid": "HQSRFA3T"
}
Run Code Online (Sandbox Code Playgroud)

我想写一个查询,如果特定language_id的不存在,那么language_id默认情况下应该返回 1 。

到目前为止,我已经尝试了两个查询:

db.questions.aggregate([
  { 
    $match: {
      'qid': 'HQSRFA3T'
    }
  },
  {
    $project: {
      formats: {
        $ifNull: [
          { $filter: { input: '$formats', as: 'format', cond: {$eq: ['$$format.language_id', 3]}} },
          { $filter: { input: '$formats', as: 'format', cond: {$eq: ['$$format.language_id', 1]}} }
        ]
      },
      _id: 0
    }
  }
])
Run Code Online (Sandbox Code Playgroud)

这个查询的结果是这样的: …

arrays mongodb mongodb-query aggregation-framework

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

如何从 typeorm 实体中排除列,并且可以选择使用 Find 方法获取列

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User {

@PrimaryGeneratedColumn()
id: number;

@Column()
name: string;

@Column()
password: string;
}
Run Code Online (Sandbox Code Playgroud)

我在这里不需要密码,因为我想返回客户端:

const user = await User.find({where:{name:"test"}})
Run Code Online (Sandbox Code Playgroud)

当我想修改密码时我需要密码:

const user = await User.findOne({where:{name:"test"}})
user.password="password";
await user.save()
Run Code Online (Sandbox Code Playgroud)

有 Find、FindAndCount 甚至 FindOne 方法的解决方案吗?

我应该怎么做?

postgresql node.js typescript typeorm nestjs

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