我有一个基于服务的应用程序,它使用具有多个队列和多个消费者的Amazon SQS.我这样做是为了实现基于事件的体系结构并解耦所有服务,其中不同的服务对其他系统的状态变化做出反应.例如:
我有很多问题:
我想我的问题是:我应该使用哪些模式来确保我可以在SQS中为单个队列拥有多个使用者,同时确保消息也可以被可靠地传递和删除.谢谢您的帮助.
event-based-programming amazon-sqs amazon-web-services microservices
我正在尝试创建一个包装twitter typeahead插件的指令.到目前为止我所拥有的是:
HTML:
<input ng-twitter-typeahead type="text" ng-model="participant" data="exampleData" />
{{ participant }}
Run Code Online (Sandbox Code Playgroud)
我想要在typeahead上选择某些内容时更新'参与者'的值.预先输入本身正常,但我无法捕获所选值.以下是javascript:
var app = angular.module('myApp', [])
app.directive('ngTwitterTypeahead', function () {
return {
restrict: 'EA',
scope: {
data: '='
},
link: function ($scope, $element, $attrs) {
$element.typeahead($scope.data);
$element.bind('typeahead:selected', function(obj, datum) {
// I really don't know how to do this part
// the variable 'datum' is what I want to be passed to ng-model
// I tried things like:
// Including the ngModelController and typing:
// ngModel.$setViewValue(datum)
// but …Run Code Online (Sandbox Code Playgroud) 我有一个Keras模型,我想转换为Tensorflow protobuf(例如saved_model.pb).
该模型来自vgg-19网络上的传输学习,其中头部被切断并使用完全连接的+ softmax层进行训练,而其余的vgg-19网络被冻结
我可以keras.backend.get_session()在Keras中加载模型,然后使用在tensorflow中运行模型,生成正确的预测:
frame = preprocess(cv2.imread("path/to/img.jpg")
keras_model = keras.models.load_model("path/to/keras/model.h5")
keras_prediction = keras_model.predict(frame)
print(keras_prediction)
with keras.backend.get_session() as sess:
tvars = tf.trainable_variables()
output = sess.graph.get_tensor_by_name('Softmax:0')
input_tensor = sess.graph.get_tensor_by_name('input_1:0')
tf_prediction = sess.run(output, {input_tensor: frame})
print(tf_prediction) # this matches keras_prediction exactly
Run Code Online (Sandbox Code Playgroud)
如果我不包含该行tvars = tf.trainable_variables(),则该tf_prediction变量完全错误,并且根本不匹配输出keras_prediction.事实上,输出中的所有值(具有4个概率值的单个数组)完全相同(~0.25,全部加1).这让我怀疑,如果tf.trainable_variables()没有先调用头部的权重,只是初始化为0 ,这在检查模型变量后得到确认.在任何情况下,调用tf.trainable_variables()都会导致张量流预测正确.
问题是,当我尝试保存此模型时,来自的变量tf.trainable_variables()实际上并没有保存到.pb文件中:
with keras.backend.get_session() as sess:
tvars = tf.trainable_variables()
constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), ['Softmax'])
graph_io.write_graph(constant_graph, './', 'saved_model.pb', as_text=False)
Run Code Online (Sandbox Code Playgroud)
我要问的是,如何将Keras模型保存为tf.training_variables() …
我正在制作一个基于服务的dockerized应用程序.有些服务将用流星写,有些则不会.
其中一项服务是注册服务,用户可以在该服务中注册该平台.
在做微服务时,通常我会做以下事情:
var MyService = DDP.connect(service_url);
var MyOtherService = DDP.connect(other_service_url);
var RegistrationService = DDP.connect(registration_service_url);
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用该loginWithFacebook方法.问题是Meteor.loginWithFacebook在前端使用将在主前端服务器上调用其后端方法.
但是,我想在RegistrationService服务器(具有相关包)上调用其后端方法.原因是因为我使用Accounts.onCreateUser钩子做额外的东西,还因为我想保持注册服务与前端分开.
为了清楚起见,即使它不正确,想象一下我有这个:
'click #facebook-login': function() {
Meteor.loginWithFacebook(data, callback)
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望该loginWithFacebook方法RegistrationService 在调用客户端方法.loginWithFacebook时使用服务器端方法,所以我实际上想要做一些事情来实现以下效果:
'click #facebook-login': function() {
RegistrationService.loginWithFacebook(data, callback)
}
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助将不胜感激.谢谢!
我正在尝试在MongoDB中进行每日聚合.我已经有一个聚合,我按天成功地对数据进行分组.但是,我想以这样的方式进行聚合,在这种情况下,没有数据显示的日期是空的.也就是说,它们是空箱.
以下是我到目前为止的情况.我无法在MongoDB文档中找到任何内容,或者建议如何进行聚合并生成空箱:
app.models.profile_view.aggregate(
{ $match: { user: req.user._id , 'viewing._type': 'user' } },
{ $project: {
day: {'$dayOfMonth': '$start'},month: {'$month':'$start'},year: {'$year':'$start'},
duration: '$duration'
} },
{ $group: {
_id: { day:'$day', month:'$month', year:'$year' },
count: { $sum: 1 },
avg_duration: { $avg: '$duration' }
} },
{ $project: { _id: 0, date: '$_id', count: 1, avg_duration: 1 }}
).exec().then(function(time_series) {
console.log(time_series)
return res.send(200, [{ key: 'user', values: time_series }])
}, function(err) {
console.log(err.stack)
return res.send(500, { error: err, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Google云上为我的Meteor应用程序设置HTTP负载均衡器.我正确设置了应用程序,我知道这是因为我可以访问网络负载均衡器中给出的IP.
但是,当我尝试设置HTTP负载均衡器时,运行状况检查总是说实例是不健康的(即使我知道它们不是).我尝试在我的应用程序中包含一个返回状态200的路由,并将健康检查指向该路由.
这正是我所做的,一步一步:
然后我尝试创建HTTP负载均衡器.我在负载均衡器中创建了一个后端服务,其中所有虚拟机都对应于流星应用程序.然后我创建一个新的全局转发规则.无论如何,实例都标记为"不健康",并且来自全局转发规则的IP返回"服务器错误".
我正在寻找在我的应用程序中实现授权(非身份验证)方案的方法。
系统中目前有两个角色:A 和 B,但可能还有更多。用户只有一个角色。
基本上,我现在设置的是两个数据库表。一种是针对模型的基于角色的权限,另一种是针对特定用户的权限。我认为这样,用户可以根据他们基于角色的权限拥有一组默认权限,但他们也可以授予/撤销特定的权限。
例如:
table: user_permissions
columns:
user_id: [int]
action: [string]
allowed: [boolean]
model_id: [int]
model_type: [string]
table: role_permissions
columns:
role: [int]
action: [string]
model_type: [string]
Run Code Online (Sandbox Code Playgroud)
在user_permissions表中,该allowed字段指定是否允许该操作,因此如果该值为 0,则可以撤消权限。
在另一个表中,我有每个动作的定义:
table: model_actions
columns:
action: [string]
bitvalue: [int]
model_type: [string]
Run Code Online (Sandbox Code Playgroud)
我这样做是为了当我检查模型的权限时,例如 ['create', 'delete'],我可以使用按位和操作来比较用户的权限和我正在检查的权限。例如,模型 X 可能具有以下 model_actions:
action: 'create'
bitvalue: 4
model_type: X
action: 'delete'
bitvalue: 2
model_type: X
action: 'view'
bitvalue: 1
model_type: X
Run Code Online (Sandbox Code Playgroud)
如果我的用户/角色权限指定模型 X 的创建、查看和删除操作分别为 1、0 和 1,则根据model_actions表将其表示为 110 。当我检查是否可以创建模型X时,我使用create为4的事实来构造位数组100。如果110和100的按位AND运算为100,则该权限有效。
无论如何,我想我已经找到了一个细粒度的权限设计模式。如果不是,请随时就该主题对我进行教育。
我的问题的实际重点涉及以下方面: …
meteor ×2
amazon-sqs ×1
angularjs ×1
keras ×1
kubernetes ×1
mongodb ×1
mongoose ×1
node.js ×1
permissions ×1
tensorflow ×1