DNS解析看起来不错,但是我无法ping通我的服务。可能是什么原因?
从集群中的另一个窗格:
$ ping backend
PING backend.default.svc.cluster.local (10.233.14.157) 56(84) bytes of data.
^C
--- backend.default.svc.cluster.local ping statistics ---
36 packets transmitted, 0 received, 100% packet loss, time 35816ms
Run Code Online (Sandbox Code Playgroud)
编辑:
服务定义:
apiVersion: v1
kind: Service
metadata:
labels:
app: backend
name: backend
spec:
ports:
- name: api
protocol: TCP
port: 10000
selector:
app: backend
Run Code Online (Sandbox Code Playgroud)
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
labels:
app: backend
spec:
replicas: 1
selector:
matchLabels:
run: backend
replicas: 1
template:
metadata:
labels:
run: backend
spec:
containers:
- …Run Code Online (Sandbox Code Playgroud) JavaScript 6中是否有允许映射多个数组的功能?
像拉链一样的东西:
var myFn = function (a, b) { console.log(a, b);}
var arr1 = ['a', 'b', 'c'];
var arr2 = [1, 2, 3];
arr1.map(myFn, arr2); // imaginary syntax.
// prints :
// a 1
// b 2
// c 3
Run Code Online (Sandbox Code Playgroud) 我想用ClojureScript实现一个函数来简化js/console.log如下:
(defn log [& args]
(apply js/console.log args))
Run Code Online (Sandbox Code Playgroud)
叫它:(log "foo" "bar")
抛出: TypeError: Illegal invocation
但这有效: (js/console.log "foo" "bar")
问题是什么 ?
我正在使用MeteorJS.
我想从javascript服务器端调用bash命令.这似乎可以通过nodeJS实现:http://www.dzone.com/snippets/execute-unix-command-nodejs
但是,我找不到与meteorJS类似的东西.我喜欢这样的东西:
if(Meteor.isServer){
...
exec("myCommand");
}
Run Code Online (Sandbox Code Playgroud) 我试图将Javascript对象转换为Clojure.但是,我收到以下错误:
(js/console.log (js->clj e)) ;; has no effect
(pprint (js->clj e)) ;; No protocol method IWriter.-write defined for type object: [object Geoposition]
Run Code Online (Sandbox Code Playgroud)
是的,这个对象来自Geolocation API.我想,我必须扩展IEncodeClojure和IWriter,但我不知道怎么样.
例如,添加以下内容:
(extend-protocol IEncodeClojure
Coordinates
(-js->clj [x options]
(println "HERE " x options)))
Run Code Online (Sandbox Code Playgroud)
加载我的代码时产生错误: Uncaught TypeError: Cannot read property 'prototype' of undefined
假设我有一个数字列表,我需要知道我必须从它的开头选择多少元素才能获得至少所需的总和.
算法很简单:我从列表的开头选择数字,直到所有选中的数字的总和超过一定数量.
我可以用这样的命令式写作:
fun pickEnough(list: List<Double>, enough: Double): List<Double>? {
var soFar = 0.0
var index = 0
for (index in 0..list.size) {
soFar += list[index]
if (soFar > enough) {
return list.subList(0, index)
}
}
return null
}
Run Code Online (Sandbox Code Playgroud)
一个低效但更通用的解决方案是生成所有可能的子列表并选择第一个减少结果足够好的子列表:
fun <T> pickEnough(list: List<T>, reducer: (T, T) -> T, enough: (T) -> Boolean): List<T>? =
list.indices
.map { index -> list.sublist(0, index) }
.first { sublist -> enough(sublist.reduce(reducer)) }
pickEnough(listOf(5,8,0,0,8), { a, b -> a + b}, { it > …Run Code Online (Sandbox Code Playgroud) 在Clojure中对函数进行别名的最惯用方法是什么?这两种方法在执行方面有什么不同吗?
从Om获取的示例(Clojurescript,但Clojure中的语法将是相同的):
(defn query->ast
"Given a query expression convert it into an AST."
[query-expr]
(parser/query->ast query-expr))
(def query->ast
"Given a query expression convert it into an AST."
parser/query->ast)
Run Code Online (Sandbox Code Playgroud) 我尝试在Google Chart中调整此示例.到re-frame框架,reagent.我想基于订阅创建一个实时图表.我用一个简单的计数器= + - 1测试.
我收到了错误: Assert failed: Render must be a function, not nil
(ifn? render-fun).
(defn draw-demo-chart
[d]
(let [[columns vectors options chart] (r/children d)
data (new js/google.visualization.DataTable)]
(doall ;gotta keep the doall on maps. lazy sequence...
(map (fn [[type name]]
(.addColumn data type name)) columns))
(.addRows data vectors)
(.draw chart data options)
(.load js/google "visualization" "1" (clj->js {:packages ["corechart" "orgchart" "calendar" "map" "geochart"]}))
(.setOnLoadCallback js/google draw-demo-chart)
))
(defn draw-demo-chart-container
[] …Run Code Online (Sandbox Code Playgroud) 我使用了编写单元测试clojure.test,现在我正在为我的应用程序添加基准测试,使用criterium和perforate.
这很好用,但我有一个问题:我在基准测试中看到了很多日志.我正在使用timbre,我不知道如何从Leiningen的Clojure代码配置它.
我没有设置配置图,虽然它在自述文件中声称非常简单,但我没有找到其他文档,到目前为止我对默认设置很满意.
如何配置timbre登录到具有之间不同的配置文件development,production以及benchmarks(这是子情况下development).
注意:如果这是相关的,我已经在Leiningen 使用了一个production和development配置文件.
clojure ×5
idioms ×2
debugging ×1
ecmascript-6 ×1
javascript ×1
kubernetes ×1
logging ×1
meteor ×1
re-frame ×1
reagent ×1
shell ×1
timbre ×1