小编Bot*_*ous的帖子

集群中的全局动态Supervisor

我有一个独特的问题,我没有必要在elxir中解决.

我需要使用动态管理器在群集环境中动态启动(n)数量的子项.我使用libcluster来管理集群并使用全局进程注册表来查找动态管理程序pid ..以下是发生的事情:

global: Name conflict terminating {:packer_supervisor, #PID<31555.1430.0>}
Run Code Online (Sandbox Code Playgroud)

以下是主管的代码:

defmodule EcompackingCore.PackerSupervisor do
  use DynamicSupervisor
  require Logger

  def start_link() do
    DynamicSupervisor.start_link(__MODULE__, :ok, name: {:global, :packer_supervisor})
  end

  def init(:ok) do
    Logger.info("Starting Packer Supervisor")
    DynamicSupervisor.init(strategy: :one_for_one)
  end

  def add_packer(badge_id, packer_name) do
    child_spec = {EcompackingCore.Packer, {badge_id, packer_name}}
    DynamicSupervisor.start_child(:global.whereis_name(:packer_supervisor), child_spec)
  end

  def remove_packer(packer_pid) do
    DynamicSupervisor.terminate_child(:global.whereis_name(:packer_supervisor), packer_pid)
  end

  def children do
    DynamicSupervisor.which_children(:global.whereis_name(:packer_supervisor))
  end

  def count_children do
    DynamicSupervisor.count_children(:global.whereis_name(:packer_supervisor))
  end

end
Run Code Online (Sandbox Code Playgroud)

问题似乎是主管在两个节点上启动.处理这个问题的最佳方法是什么?我真的需要主管是动态的,所以我可以有效地管理工作模块.可能是一个不同的注册表?

谢谢你的帮助.

cluster-analysis elixir

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

具有密钥导出功能的AES解密

我正在努力将解密函数从.NET移植到elixir作为概念证明.

任何人都可以给我一些关于这是否可以与Erlang加密模块一起使用的指导?我玩过各种block_decrypt功能,但从来没能得到正确的结果.我在想我的问题来自一个不正确的密钥和IV.

我不确定如何从加密的纯文本值派生字节数据进入block_decrypt.

这是我用来尝试解密的elixir代码:

defmodule TestApp.Decrypt do
  @iv <<30,64,180,159,172,197,92,10,197,3,39,75,53,92,93,37>>

  def unpad(data) do
    to_remove = :binary.last(data)
    :binary.part(data, 0, byte_size(data) - to_remove)
  end


  def decrypt(data, key) do
    IO.puts "WOrking to decrypt #{data} using #{key}"
    padded = :crypto.block_decrypt(:aes_cbc256, key, @iv, :base64.decode(data))
    unpad(padded)
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个32字节的密钥,我试图传入,但我收到此错误:

Erlang error: :notsup 
Run Code Online (Sandbox Code Playgroud)

加密库指出错误的原因是我的erlang版本没有启用脏调度程序,但我不知道在调查之前我是否正朝着正确的方向前进.

elixir

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

iOS:Monotouch绑定条样式上的外观丢失了吗?

我正在尝试将其转换为Monotouch C#:

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackOpaque]; 
Run Code Online (Sandbox Code Playgroud)

但是在Appearance对象上似乎没有Bar Style.

是否有解决方案或替代接入点?

c# iphone uinavigationbar xamarin.ios ios

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

双向绑定单对象 Observable

我想对 Angular 4 中的元素执行双向数据绑定,但我遇到了问题。任何人都可以提供一些方向吗?

成分:

import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Load } from '../services/model/load';
import { LoadService } from '../services/api/load.service';
import {Observable} from 'rxjs/Observable';
@Component({
  selector: 'app-storeedit',
  templateUrl: './storeedit.component.html',
  styleUrls: ['./storeedit.component.css']
})
export class StoreeditComponent implements OnInit {
  load: Observable<Load>;
  private sub: any;
  constructor(private route: ActivatedRoute, private loadService: LoadService) { }

  ngOnInit() {
    this.sub = this.route.params.subscribe(params => {
      // Require ID
      var loadId : number = +params['id'];
      this.fetchLoad(loadId);
    }) …
Run Code Online (Sandbox Code Playgroud)

angular

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

Phoenix - 在 POST 响应中发送字节

我有一个可以在内存中生成 PDF 的应用程序。我需要将该 PDF 返回给浏览器。该请求是 POST 类型,但我在使用 send_download 时遇到问题。目前,我只能通过 GET 请求让它工作。

这是我尝试过的:

在控制器中,如果请求是 get,则此方法有效:(注意 pdf 是字节(<<37, 56, 66 ...>> 等)

send_download(conn, {:binary, pdf}, [filename: "doc.pdf"]
Run Code Online (Sandbox Code Playgroud)

但是,如果我将请求转换为 POST,则这不起作用。当我这样做时,我在服务器上没有收到任何错误。

我也尝试过:

  conn
    |> put_resp_content_type("application/pdf")
    |> put_resp_header("content-disposition", "attachment; filename=html.pdf")
    |> send_file(200, pdf)
Run Code Online (Sandbox Code Playgroud)

但当我尝试时出现以下错误:

无法使用空字节发送文件/5

保存字节的 pdf var 不为空。在此之前我进行了一次检查,结果并非为零。

我已经搜索过,但似乎无法找到看似如此简单的问题的答案。send_file 似乎不是正确的函数,因为文档说它需要完整路径而不是字节文件......

我试图避免将文件写入磁盘。

提前致谢。

elixir phoenix-framework

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

在 Visual Studio 中指定 dotnet publish RuntimeIdentifiers

可能是一个简单的问题,但很难找到相关信息。

我可以使用以下命令从 CLI 构建一个测试应用程序:

dotnet publish -c Release -r rhel.7.2-x64
Run Code Online (Sandbox Code Playgroud)

注意 -r 标志,它告诉 dotnet 为 redhat 7.2 构建它。这很好用。

在通过 VS 构建/调试时,如何让 Visual Studio 添加 -r 标志?我的第一直觉是使用 global.json 文件,但这只能让我更改 SDK 运行时,而不是目标运行时。任何想法都会很棒。

为了完整起见,我正在使用 redhat dotnet 2.0 运行时映像对应用程序进行 dockerizing,因此我需要将 bin 文件作为该构建的目标。

.net asp.net-core

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

List.Sort方法的二级排序

我有一个通用列表,我试图实现二级排序类型.我可以通过一种类型对其进行排序,但无法进行二次排序.

这是我正在使用的:

当我打电话排序:

List<Totals> totals = new LoadTotalList();
totals.Sort(Totals.Status); 
Run Code Online (Sandbox Code Playgroud)

这是Totals类:

public class Totals
{
  public string Status { get; set; } 
  public string Total { get; set; } 
  public string Cost { get; set; } 

  public static Comparison<Totals> StatusComp = 
delegate(Totals item1, Totals item2)
{
 return item1.Status.CompareTo(item2.Status);
};

  public static Comparison<Totals> CostComp = 
delegate(Totals item1, Totals item2)
{
 return item1.Cost.CompareTo(item2.Cost);
};


}
Run Code Online (Sandbox Code Playgroud)

我试过排序第一种类型,然后排序第二种类型,但似乎无法获得二级排序类型.我知道可以使用OrderBy子句然后使用ThenBy Clause来完成Linq.但我还有其他选择吗?在此先感谢您的帮助!

c# asp.net sorting

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