鉴于以下代码:
import { graphql } from 'graphql'
import graphqlTools from 'graphql-tools'
const { makeExecutableSchema } = graphqlTools
const typeDefs = `
type Query {
as: [A]
}
type A {
x: Int,
y: Int
}
`
const schema = makeExecutableSchema ({ typeDefs })
graphql(schema, '{ as { x, y } }').then(console.log)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
错误:无法使用来自另一个模块或领域的 GraphQLSchema“[object GraphQLSchema]”。
确保 node_modules 目录中只有一个“graphql”实例。如果不同版本的“graphql”是其他依赖模块的依赖,使用“resolutions”保证只安装一个版本。
这是怎么回事?
我在redis中缓存一些数据,如果存在则从redis读取数据,否则从数据库读取数据并以redis形式写入数据.
我发现更新数据库后有几种方法可以更新redis.例如:
我有点困惑,不知道如何选择.
你能告诉我每种方式的优缺点吗,最好告诉我更新redis的其他方法或推荐一些关于这个问题的博客.
我需要以编程方式添加一个IIS 7.x站点,当我应该使用默认的HTTPS/SSL绑定创建时,我会遇到困难,usig SiteCollection.Add(string,string,string,byte [])重载.
Giving as bindingInformation会抛出一条带有此消息的ArgumentException:指定的HTTPS绑定无效.https:*:80:test.localhost
https:*:443:test.localhost
这个绑定信息有什么问题?
谢谢.
编辑:我正在使用Microsoft.Web.Administration程序集.
我正在经历所谓的Timeout执行HGET公司:产品:设置,inst:1,队列:8,qu = 0,qs = 8,qc = 0,wr = 0/0,in = 79/1超时异常.
这很奇怪,因为相同的Redis实例和同一台机器存储数据,但它是一个抛出此异常的特定应用程序.更新:实际上,同一个应用程序,上面一行从Redis接收数据.问题在于HGET
.
此外,我已经将多路复用器配置的超时时间增加到6秒而没有运气.
另外,我检查了IDatabase
实例具有IsConnected
与true
价值.
如何解释这些错误消息以及整个超时背后的问题是什么?
当一些代码部分获取数据库(即multiplexer.GetDatabase()
)时,我已成功修复了问题.
虽然多路复用器具有AppDomain
StackExchange.Redis文档中描述的实例,但许多控制组件的反转都IDatabase
在他们自己的代码中创建了许多实例.也就是说,IDatabase
实例不是共享的.
实际代码正在执行a ListRightPopLeftPush
,之后,它实例化控件组件的反转,该组件在组件实例化期间读取散列键.如果在执行所谓的之前实例化整个组件ListRightPopLeftPush
,则整个HashGet
不会抛出超时异常.
看起来即使ListRightPopLeftPush
从其他IDatabase
实例执行,在IDatabase
执行读取操作时,它会在下一个实例中产生某种问题.
无论如何,我的修复不回答这个问题.我刚刚添加了更详细的信息,让我们找到问题所在和自己的解决方案.
无论如何,上面的"修复"不会修复对Redis的进一步读取访问.我在进一步的调用中得到了相同的超时异常.现在,in
在异常的消息中发现了参数60/1
.
使用C#6.0,我可以做到这一点
var isEqual = x.Id == y.Id
&& x.UpdatedAt == y.UpdatedAt
&& x.Name == y.Name
&& x.RulesUrl == y.RulesUrl
&& x.OngoingChallenges?.Count == y.OngoingChallenges?.Count
&& x.MembershipIds?.Count == y.MembershipIds?.Count;
Run Code Online (Sandbox Code Playgroud)
C#<6.0有没有很好的解决方案呢?
我的意思是这部分
&& x.OngoingChallenges?.Count == y.OngoingChallenges?.Count
&& x.MembershipIds?.Count == y.MembershipIds?.Count;
Run Code Online (Sandbox Code Playgroud)
因为在旧项目中我们没有可能使用C#6.0.怎么写得isEqual
高效?
ES 模块文档说明:
导入不使用 require.cache。它有一个单独的缓存。
那么这个单独的缓存在哪里?毕竟可以访问吗?
我正在寻找无效的模块缓存,因为它可以在CommonJS 模块中完成(node.js require() 缓存 - 可能无效?)
我正在为我们的在线REST服务编写公共.NET类库版本,我无法决定选择哪个版本的.NET.
我想使用.NET 4.0版本,但这样的编译类库不能在.NET 2.0版本中使用?
也许有统计数据有多少开发人员使用.Net 2.0版本?
例如,如果您运行以下代码...
Type IListType = new List<string>().GetType()
.GetInterface("IList`1")
.GetGenericTypeDefinition();
Run Code Online (Sandbox Code Playgroud)
...而且你看IListType
变量,你会发现整个Type
实例都有像FullName
其他的一样可用的属性.
但是当你运行代码时会发生什么?
Type IListType2 = typeof(List<>).GetInterface("IList`1")
Run Code Online (Sandbox Code Playgroud)
现在IListType
得到的泛型类型定义与第一个代码示例不同:大多数Type
属性都将返回null.
这个问题的主要问题是IListType == IListType2
它们是相同类型时不相等.
这是怎么回事?
现在看看如果你打电话会发生什么IListType2.GetGenericTypeDefinition()
......它恢复了类型信息!
这将是巨大的,一个.NET Framework开发团队成员可以解释我们为何已经奇怪的失去了它的元数据已经泛型类型定义具有IsGenericTypeDefinition
属性设置为false
同时它还是一个泛型类型定义,最后,如果你调用GetGenericTypeDefinition()
就可以了,你恢复类型信息.
以下等式将是true
:
Type IListType = new List<string>().GetType()
.GetInterface("IList`1")
.GetGenericTypeDefinition();
// Got interface is "like a generic type definition" since it has
// no type for T generic parameter, and once you call
// …
Run Code Online (Sandbox Code Playgroud) 我正在使用Angular Material 1.0.3并且<input>
元素被正确设置但是如果我单击一个来聚焦它们,它们的值是可见的.一旦它没有聚焦,我就看不到它的价值.
标记如下:
<md-input-container>
<label>Some label</label>
<input ng-model="model.someProperty">
</md-input-container>
Run Code Online (Sandbox Code Playgroud)
在检查它是否是CSS问题后,我发现以下CSS选择器变成color
了transparent
:
md-input-container:not(.md-input-has-value) input:not(:focus) {
color: transparent;
}
Run Code Online (Sandbox Code Playgroud)
显然,似乎输入没有.md-input-has-value
CSS类.
现在,我无法弄清楚出了什么问题.
就我而言,与Angular Material演示相反,控制器处于指令和UI路由器状态.
事实上,我可以确认我已经在我的index.html
直接子项中复制粘贴相同的标记<body>
,然后它按预期工作.
也许它与这个开放的问题有一些关系:动态编译材料指令:md-input-has-value属性未设置#3017.
<md-input-container>
有md-input-has-value
CSS类我还检查过<md-input-container>
有md-input-has-value
CSS类.
javascript google-chrome angularjs material-design angular-material
据我所知,有两种可能的模式来实现基于任务的异步方法的超时:
public Task DoStuffAsync(TimeSpan timeout)
Run Code Online (Sandbox Code Playgroud)
这种方法难以实现,因为实现整个调用堆栈的全局超时并不容易.例如,Web API控制器接收HTTP请求并进行调用DoStuffAsync
,调用者希望全局超时为3秒.
也就是说,每个内部异步方法调用都需要接收已经使用过的时间的减法...
public Task DoStuffAsync(CancellationToken cancellationToken)
..........
CancellationTokenSource cancellationSource = new CancellationTokenSource();
Task timeoutTask = Task.Delay(3000);
if(await Task.WhenAny(DoStuffAsync(cancellationTokenSource), timeoutTask) == timeoutTask)
{
cancellationSource.Cancel();
throw new TimeoutException();
}
Run Code Online (Sandbox Code Playgroud)
这似乎是最可靠和易于实现的模式.第一个调用者定义全局超时,如果超时,则将取消所有挂起的操作.此外,它为直接调用者提供取消令牌,内部调用将共享相同的取消令牌引用.因此,如果最高调用者超时,它将能够取消任何工作线程.
有没有我缺少的模式,或者如果我使用no内置超时开发API,我是否以正确的方式?
c# ×6
.net ×4
javascript ×3
.net-4.0 ×2
caching ×2
ecmascript-6 ×2
node.js ×2
redis ×2
.net-2.0 ×1
.net-3.5 ×1
angularjs ×1
async-await ×1
asynchronous ×1
c#-4.0 ×1
c#-5.0 ×1
c#-6.0 ×1
database ×1
equality ×1
exception ×1
generics ×1
graphql ×1
graphql-js ×1
iis ×1
iis-7 ×1
module ×1
reflection ×1