鉴于enum:
[Flags]
public enum mytest
{
a = 1,
b = 2,
c = 4
}
Run Code Online (Sandbox Code Playgroud)
我想出了两种方法来表示单个变量中的所有值:
var OR1 = (mytest)Enum.GetNames(typeof(mytest)).Sum(a => (int)Enum.Parse(typeof(mytest), a));
var OR2 = (mytest)(typeof(mytest).GetEnumValues() as mytest[]).Sum(a => (int)a);
Run Code Online (Sandbox Code Playgroud)
现在,虽然它们都有效,但还有更简洁的方法吗?可能是我缺少的.NET方法?
编辑:为了澄清,我需要函数是动态的 - 我不想通过指定每个enum值来计算它.
当我的主视图旋转时,我想重新排列子视图,所以在我的ViewController中,我重写
willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
Run Code Online (Sandbox Code Playgroud)
并在那里设置子视图的帧.这一切都很好,但在子视图中我也被覆盖了
layoutSubviews
Run Code Online (Sandbox Code Playgroud)
所以他们正确地布置自己.但问题是这个现在被调用两次 - 大概一次我在willAnimateRotationToInterfaceOrientation中设置Frame而一次因为旋转而设置.(如果我没有设置Frame,它会被调用一次.)
当然,ViewController负责布局框架,这看起来像是一个设计缺陷 - 什么是解决方案,所以layoutSubviews只调用一次?
在我的项目中,我看到有两次同一个交付标签的确认.当发生这种情况时,消费者从队列中取消绑定,并且没有其他消息传递给消费者(使用RabbitMQ管理仪表板观察到这一点).我如何检查给定的送货标签已经确定了?或使用rabbitmq api处理此类场景的任何其他推荐方法.
我试图在我的代码中避免上面的重复ack,但遗憾的是由于某些设计问题,它是不可能的.
我需要升级我们的生产者/消费者基础设施。
这种方法的问题在于,如果客户生成大量任务,它可能会占用队列中的所有可用插槽,这可能会导致该队列中的服务拒绝(或巨大延迟)。
例如,我们有一组消息:
1. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:00
2. Producer: Customer2, Queue: High, Payload: {}, Created: Today 16:00:01
3. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:02
4. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:03
Run Code Online (Sandbox Code Playgroud)
我们有以下消费者:
1. Consumer1: Dedicated for Customer1
2. Consumer2: Dedicated for Customer1
3. Consumer3: Dedicated for Customer2
Run Code Online (Sandbox Code Playgroud)
预期结果:
1. Consumer1 will address Message#1
2. Consumer2 will …Run Code Online (Sandbox Code Playgroud) 我想用零停机时间替换和索引,如ES文档中所述.
我这样做是这样的:
my_index_v2使用新数据创建新索引POST /_aliases
{
"actions": [
{ "remove": { "index": "*", "alias": "my_index" }},
{ "add": { "index": "my_index_v2", "alias": "my_index" }}
]
}
Run Code Online (Sandbox Code Playgroud)
这可以按预期工作,除非它随机响应404响应.错误消息是:
{
"error": {
"root_cause": ... (same)
"type": "index_not_found_exception",
"reason": "no such index",
"resource.type": "index_or_alias",
"resource.id": "my_unrelated_index_v13",
"index": "my_unrelated_index_v13"
},
"status": 404
}
Run Code Online (Sandbox Code Playgroud)
整个操作每隔几分钟就会定期发生.与所描述的操作类似的操作可能在群集中同时发生在其他别名/索引上.每隔几个小时就会随机发生错误.
有没有理由说这些操作会相互干扰?到底是怎么回事?
编辑:最后阐明了DELETE步骤.
我知道这是一个非常基本的问题,但我真的很困惑.事实上,我绝对是gcc语法的新手.我希望在不使用扩展内联汇编的情况下拥有局部变量(事实上堆栈地址带有标签); 类似于intel语法中的代码:
DATA1 DB 100
MOV AL,DATA1
这是我猜可能在gcc中替代的代码:
- (int)someFunction:(int)x {
Run Code Online (Sandbox Code Playgroud)DATA1 DB 100 MOV AL, DATA1
但是这段代码导致了这个错误:
找不到架构x86_64的符号
我可以在x86中使用全局变量,但x64或x86_x64中的结果相同.
设置:LLVM 4.1; Xcode中使用的Cocoa 4
什么是正确的语法?
我做了一些东西,检索我输入的URL的IP地址.
InetAddress ip = InetAddress.getByName("www.fake.cao");
return ia.getHostAddress();
Run Code Online (Sandbox Code Playgroud)
我还抛出了UnknownHostException来尝试捕获错误的URL错误.
问题是,www.fake.cao被识别为真正的URL并返回一个不可用的IP地址,并且不会抛出异常.
任何人都可以告诉我,我能做些什么来捕捉这些自命不凡的URL?
我正在重新设计NodeJS应用程序,因为我想使用Rich Domain Model概念。目前,我正在使用Anemic域模型,并且扩展性不好,我到处都看到“ ifs”。
我已经阅读了许多博客文章和与DDD相关的博客,但是有些事情我根本无法理解...我们如何正确处理持久性。
首先,我想描述一下我定义的图层及其用途:
持续性模型
领域模型
数据访问对象(DAO)
服务层
客户层
现在,当我实现客户端层时,混乱就开始了。
假设我正在实现一个新的REST API:
POST: .../api/CreateOrderForUser/
{
items: [{
productId: 1,
quantity: 4
},{
productId: 3,
quantity: 2
}]
}
Run Code Online (Sandbox Code Playgroud)
在我的处理程序函数上,我将有类似以下内容:
function(oReq){
var oRequestBody = oReq.body;
var oCurrentUser = oReq.user; //This is already a Domain Object
var aOrderItems = oRequestBody.map(function(mOrderData){
return new OrderItem(mOrderData); //Constructor sets the properties internally
});
var oOrder = new Order({
items: aOrderItems
});
oCurrentUser.addOrder(oOrder); …Run Code Online (Sandbox Code Playgroud) architecture domain-driven-design node.js sequelize.js rich-domain-model
我正在Android应用中使用webview.
我有3个按钮1用于指向网站的链接,用于呼叫号码和一个电子邮件按钮.
首先调用我的网站按钮工作,http://www.somelink.com .
但我的电话:链接无法正常工作.所以我集成了一些使我的tel:按钮工作的代码.
问题是它使我的网站或http:按钮不起作用?
单击它时,html按钮不执行任何操作.
package de.sonae.novolam;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@SuppressLint("SetJavaScriptEnabled")
public class DFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mainView = (View) inflater.inflate(R.layout.dfragment, container, false);
WebView webView = (WebView) mainView.findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse(url));
startActivity(intent); …Run Code Online (Sandbox Code Playgroud)