小编Mat*_*zer的帖子

错误:无法使用来自另一个模块或领域的 GraphQLSchema“[object GraphQLSchema]”

鉴于以下代码:

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”保证只安装一个版本。

这是怎么回事?

javascript node.js ecmascript-6 graphql graphql-js

12
推荐指数
3
解决办法
6212
查看次数

更新数据库后如何更新redis?

我在redis中缓存一些数据,如果存在则从redis读取数据,否则从数据库读取数据并以redis形式写入数据.

我发现更新数据库后有几种方法可以更新redis.例如:

  1. 将redis中的密钥设置为已过期
  2. 更新datebase后立即更新redis.
  3. 将数据放入MQ并使用consumer来更新redis.

我有点困惑,不知道如何选择.

你能告诉我每种方式的优缺点吗,最好告诉我更新redis的其他方法或推荐一些关于这个问题的博客.

database caching redis

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

IIS 7.x,添加启用HTTPS的站点:SiteCollection.Add(string,string,string,byte [])重载

我需要以编程方式添加一个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程序集.

c# iis iis-7 .net-4.0 c#-4.0

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

异步命令和Task.WhenAny等待StackExchange.Redis之后的超时异常

我正在经历所谓的Timeout执行HGET公司:产品:设置,inst:1,队列:8,qu = 0,qs = 8,qc = 0,wr = 0/0,in = 79/1超时异常.

这很奇怪,因为相同的Redis实例和同一台机器存储数据,但它是一个抛出此异常的特定应用程序.更新:实际上,同一个应用程序,上面一行从Redis接收数据.问题在于HGET.

此外,我已经将多路复用器配置的超时时间增加到6秒而没有运气.

另外,我检查了IDatabase实例具有IsConnectedtrue价值.

如何解释这些错误消息以及整个超时背后的问题是什么?

一些背景......

一些代码部分获取数据库(即multiplexer.GetDatabase())时,我已成功修复了问题.

虽然多路复用器具有AppDomainStackExchange.Redis文档中描述的实例,但许多控制组件的反转都IDatabase在他们自己的代码中创建了许多实例.也就是说,IDatabase实例不是共享的.

实际代码正在执行a ListRightPopLeftPush,之后,它实例化控件组件的反转,该组件在组件实例化期间读取散列键.如果在执行所谓的之前实例化整个组件ListRightPopLeftPush,则整个HashGet不会抛出超时异常.

看起来即使ListRightPopLeftPush从其他IDatabase实例执行,在IDatabase执行读取操作时,它会在下一个实例中产生某种问题.

无论如何,我的修复不回答这个问题.我刚刚添加了更详细的信息,让我们找到问题所在和自己的解决方案.

更新

无论如何,上面的"修复"不会修复对Redis的进一步读取访问.我在进一步的调用中得到了相同的超时异常.现在,in在异常的消息中发现了参数60/1.

.net c# exception redis stackexchange.redis

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

如何在C#<6中模拟C#6空条件

使用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高效?

c# c#-5.0 c#-6.0

10
推荐指数
2
解决办法
1142
查看次数

ES 模块中的 require.cache 等效项

ES 模块文档说明:

导入不使用 require.cache。它有一个单独的缓存。

那么这个单独的缓存在哪里?毕竟可以访问吗?

我正在寻找无效的模块缓存,因为它可以在CommonJS 模块中完成(node.js require() 缓存 - 可能无效?

javascript caching module node.js ecmascript-6

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

什么.NET版本可供选择?

我正在为我们的在线REST服务编写公共.NET类库版本,我无法决定选择哪个版本的.NET.

我想使用.NET 4.0版本,但这样的编译类库不能在.NET 2.0版本中使用?

也许有统计数据有多少开发人员使用.Net 2.0版本?

.net c# .net-4.0 .net-3.5 .net-2.0

9
推荐指数
3
解决办法
3592
查看次数

为什么通用类型定义实现的接口会丢失类型信息?

例如,如果您运行以下代码...

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)

.net c# generics reflection equality

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

Angular Material输入在未聚焦时不显示值

我正在使用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选择器变成colortransparent:

md-input-container:not(.md-input-has-value) input:not(:focus) {
     color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

显然,似乎输入没有.md-input-has-valueCSS类.

现在,我无法弄清楚出了什么问题.

附加信息

就我而言,与Angular Material演示相反,控制器处于指令和UI路由器状态.

事实上,我可以确认我已经在我的index.html直接子项中复制粘贴相同的标记<body>,然后它按预期工作.

也许它与这个开放的问题有一些关系:动态编译材料指令:md-input-has-value属性未设置#3017.

<md-input-container>md-input-has-valueCSS类

我还检查过<md-input-container>md-input-has-valueCSS类.

javascript google-chrome angularjs material-design angular-material

9
推荐指数
2
解决办法
4341
查看次数

C#中基于任务的异步方法的超时模式

据我所知,有两种可能的模式来实现基于任务的异步方法的超时:

内置超时

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,我是否以正确的方式?

.net c# design-patterns asynchronous async-await

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