小编er0*_*er0的帖子

批量Apple推送通知

我有一个应用程序,涉及定期向〜1M用户发送Apple推送通知.这样做的设置已经构建并测试了少量通知.由于我无法测试那种规模的发送,我有兴趣知道发送批量推送通知是否有任何问题.我有用Python编写的脚本,它打开与推送服务器的单一连接,并通过该连接发送所有通知.Apple建议尽可能长时间保持打开状态.但我也看到连接终止,你需要重新建立它.

总而言之,令人不安的是,成功的发送不被确认,只有错误的发送被标记.从程序员的角度来看,而不是简单地检查一件事"如果(成功)",你现在需要注意许多可能出错的事情.

我的问题是:您需要注意哪些典型的错误,以确保您的消息不会默默地消失?连接关闭很简单.还有其他人吗?

iphone push-notification apple-push-notifications ios

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

用于防止与模式匹配的导入的 ESLint 规则

有谁知道 ESLint 规则可以标记与给定正则表达式匹配的导入?

javascript eslint

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

在多处理模块中为每个进程重新加载Python模块

有没有办法在使用Python的多处理模块创建的进程中加载​​模块的每个进程副本?我试过这个:

def my_fn(process_args):
    import my_module
    my_func()
Run Code Online (Sandbox Code Playgroud)

...但my_module中的子导入会一劳永逸地加载和缓存.特别是,其中一个子导入读取一个配置文件,其值根据第一个进程的环境设置.如果我试试这个:

def my_fn(process_args):
    try:
        my_module = reload(my_module)
    except NameError:
        import my_module
Run Code Online (Sandbox Code Playgroud)

... my_module的子导入不会重新加载.

python python-module python-multiprocessing

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

间歇性错误代码400,在连接到通道的客户端上的描述""

我的Google App Engine应用程序使用Channel API在某些时候运行良好.但是,间歇性地,连接到通道的js代码会产生错误.在socket.onError中,错误代码设置为400,描述设置为空字符串.我已经检查过用于连接的令牌是否有效.我也尝试在socket.onError中重新创建通道,首先调用socket.close(),但这似乎不起作用.通常在成功之前会出现一系列失败.客户端js正在iOS上的Safari上运行.任何有关如何解决或解决问题的想法都将受到欢迎.现在,我最好的解决方法是继续尝试直到我成功,增加每次失败尝试之间的间隔.服务器端存在API没有帮助,因为没有可靠地调用'connected'钩子.

google-app-engine channel-api

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

可以重复使用 Google App Engine 渠道吗?

如果客户端与 Google App Engine 频道断开连接,那么创建该频道的服务是否可以为另一个客户端重用相应的令牌?

我意识到之前有一些关于“汇集渠道”的最佳方式的问题,其中隐含着这是可能的想法。但是,我也看到一些意见表明这是不可能的。如果有人能澄清这一点,我将不胜感激。

google-app-engine channel-api

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

有人可以解释使用语句值Javascript ECMAScript吗?

我是Javascript的新手,并注意到语句有值:

> x = 1
<- 1

> if (false) {
    x=1;
  } 
  else { x=2 };
<- 2
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么语句具有它们在实际应用程序中使用的值,因为函数需要通过显式返回值return.

这与完成的概念有关,它与价值相关,不论其类型(正常还是突然)?

javascript ecma ecmascript-5 ecmascript-6

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

OCaml 中未装箱的类型 int

我想在我的 OCaml 程序中表示两种类型的整数,并让编译器在使用一种类型代替另一种类型时发出错误。我的程序在两种整数类型之间进行转换,并且运行时间的很大一部分都花在对这些值进行操作上。如果可能的话,我希望对未装箱的值运行算术运算。我实现了一个定义此类类型的模块,并实现了 +、-、/、* 运算符。但我的理解是,操作是在装箱值上运行的。有没有办法用未装箱的值获得相同的行为?

module SkipInts = struct
  type t = Int of int | SkipInt of int
end
Run Code Online (Sandbox Code Playgroud)

ocaml

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

在OCaml中动态切换模块

我在OCaml中有一个模块,由另一个模块参数化,它代表一个数据结构(H = Hashtable,M = Map,L = LossyMap).我现在想通过命令行选择这个数据结构.

我创建主要处理模块的方式是:

module HashSampler = MakeSampler(HashtableMatrix)
module MapSampler = MakeSampler(MapMatrix)

etc.
Run Code Online (Sandbox Code Playgroud)

不幸的是,在这些之间多路复用的代码是丑陋的:

match representation with
| "Hashtable" ->
       let matrix = HashSampler.create () in
           HashSampler.process_file matrix file
| "Map" -> 
       let matrix = MapSampler.create () in
           MapSampler.process_file matrix file
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法可以防止代码重复?

ocaml ocaml-core

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

比较非 int 类型的相等运算符

我最近将我的项目从 OCaml 4.03 更新到 OCaml 4.13。一项更改是,在检查非 int 类型之间的相等性时出现类型错误。例如,floats我得到这个:

错误:此表达式的类型为 float,但表达式应为 int 类型

我可以通过明确使用 来解决这个问题Float.(f0 = f1)。但我在自定义类型上遇到了同样的问题。例如:

utop # type e = X | Y
utop # let a = X;;
val a : e = X
utop # let b = Y;;
utop # X = Y;;
Error: This expression has type e but an expression was expected of type int
Run Code Online (Sandbox Code Playgroud)

处理这种情况的正确方法是什么?Stdlib.(a = b)可以工作,但感觉很麻烦,因为多态相等运算符非常常用。

ocaml

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