小编dcg*_*dcg的帖子

c#任务多队列限制

我需要一个需要维护不同任务队列的环境,并且每个队列都有一个明确定义的可以为每个队列执行的并发线程数.像这样的东西:

  • 队列1 - > 3个线程;
  • 队列2 - > 6个线程;

任务系统的种类.我已经设法自己实现了这个使用普通的旧c#代码(又名System.Threading.Thread,lock和queue),它可以工作超过1年.但是,我一直在阅读有关TaskFactory和TaskScheduler奇迹的文章,关于.NET中内置类的可能性,但我没有找到证明这一点的例子.我想测试一下,并与我现在所做的比较,看看它是否工作得更好,如果有的话,更换它.

更多,我可以在不必限制/设置每个队列的并行线程数的情况下生存,只要我能够得到那个guarantee,即使队列#1在满负荷执行时imediatly执行队列#2的目标.

所以,我的问题是 - 是否有.net 4及更多内容,有人能指出我的样本吗?我整整一周都在寻找一个并没有得到相关的东西.

c# queue task task-parallel-library

12
推荐指数
1
解决办法
4065
查看次数

将十六进制/二进制数据导入mysql

我需要导入一个mysql服务器(5.5)一组大数据,其中一个字段作为blob.按照SELECT INTO OUTFILE和LOAD DATA INFILE的样本,它几乎可以正常工作.但是,我有一个问题:BLOB文件中生成的数据实际上是二进制表示.生成的文件如下所示(第3列代表BLOB):

1,1,"4Vÿ"
2,1,"ª»Ì"
3,1,"Ýîÿ"
4,1,"\"3"

并且使用以下sql语句导入适用于此情况:

LOAD DATA INFILE 'C:/temp/mysql/mysqldump.1.txt'
INTO TABLE `test_table`
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
;

我的问题是文本是偶然生成的.如果出现引号,或者换行,或者其他什么,我将需要手动执行转义(即用反斜杠替换它们),我想跳过这一步.

所以,我的问题是:有什么方法可以导入一个文本文件,格式如下(BLOB存储为hexa):

1, 1, 0x123456FF
2, 1, 0xaabbcc
3, 1, 0xddeeff
4, 1, 0x112233

用一个单独的mysql语句?

更新:忘记提及 - 尝试使用LOAD DATA INFILE语句直接导入具有所需格式的文本文件,结果实际上是将文本'0x123456FF'存储在表的BLOB文件中.

mysql import blob

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

丢失节点的xpath

我有以下xml:

<root>
  <node>
     <tag1/>
     <tag2/>
     <tag3/>
  </node>
  <node>
     <tag1/>
     <tag2/>
     <tag3/>
  </node>
  <node>
     <tag1/>
     <tag3/>
  </node>
</root>
Run Code Online (Sandbox Code Playgroud)

如您所见,在第3个节点中我缺少了tag2.是否有任何xpath可以应用于ac#XmlDocument(通过SelectNodes),它可以返回没有tag2节点的节点?

xml xpath

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

Solr5中的EdgeNGramFilterFactory更改

精简版:

有谁知道Soln5的EdgeNGramFilterFactory是否发生了什么事?它曾经在solr 4上正常工作,但我刚刚升级到solr5并且使用此过滤器的具有此字段的内核拒绝加载...

很长的故事:

此配置曾用于solr4.10(schema.xml):

<field name="NAME" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="PP" type="text_prefix" indexed="true" stored="false" required="false" multiValued="false"/>

<copyField source="NAME" dest="PP">

<fieldType name="text_prefix" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

文档说我这样做是正确的(如果没有明确提到它是solr4或solr5).

但是,当我尝试使用此配置添加集合时,它失败并显示以下消息:

<lst name="failure">
<str>
   org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error from server at http://localhost:8983/solr: Error CREATEing SolrCore 'test_collection': Unable to create core [test_collection] Caused by: Unknown parameters: {side=front}</str>
</lst>
Run Code Online (Sandbox Code Playgroud)

我删除了side=front"未知"参数,从头开始,它工作 - 意味着没有更多的错误.

因此,虽然它曾经用于solr4而没有任何额外的改变,但对于solr5它不再有效.有什么改变了?我是否错过了有关此过滤器的任何文档?我需要加载任何额外的库来使其工作?

最后,如果上面的意思是这样的(bug/feature/what) - 是否有任何解决方法,以便拥有这个"side-substring"索引功能,而不必在我添加文档时生成值Solr的?

更新:使用"黑客"架构(即没有 …

configuration plugins solr load

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

mysql在一个大表上慢选择顺序

我有一个存储在mysql(基本上是一个日志)中的大表,如下所示:

  CREATE TABLE `log` (
    `ID_1` int(10) unsigned NOT NULL,
    `ID_2` int(10) unsigned NOT NULL,
    `DELTA` tinyint(3) unsigned NOT NULL,
    `ACTIVE` tinyint(1) NOT NULL,
    `DATA` bigint(20) unsigned NOT NULL,
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8$$
Run Code Online (Sandbox Code Playgroud)

没有索引.使用随机数据随机插入数据,并且工作正常.然后,该表脱机(对其没有读/写操作).此时的表大小约为180M记录.我在ID_1,ID_2,DELTA,ACTIVE字段(全部4,升序)上添加索引.它工作得相当快(3-4分钟).

现在,我试图通过ID_1,ID_2,DELTA,ACTIVE(相同的字段和索引中的相同顺序)按升序获取表中的所有数据,但是选择在'SORTING RESULT'中保持多年(在SHOW中) PROCESSLIST)直到返回第一行.我试图提示/强制SELECT语句使用索引(即FORCE INDEX/USE INDEX),但没有任何区别.有关如何提高此类查询的响应速度的任何提示:

SELECT `ID_1`, `ID_2`, `DELTA`, `ACTIVE` FROM `log` ORDER BY `ID_1`, `ID_2`, `DELTA`, `ACTIVE` ASC;
Run Code Online (Sandbox Code Playgroud)

这里也提出了一个类似的问题:在大表中慢速排序 - 但没有答案.认为发布一个喜欢它的人是一个好主意,也许有人现在知道答案.

谢谢!

mysql performance select sql-order-by

3
推荐指数
1
解决办法
2301
查看次数

使用正则表达式提取文本的最后一行

我需要使用正则表达式从多行字符串中仅提取最后一行.我试图使用像@"\n(.*?)$"之类的SingleLine模式,但不幸的是它从第二行到结尾提取文本.任何提示?

谢谢!

c# regex line

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

.net micro(μ)希腊字母大写问题

我有以下代码:

 string firstMicro = "aa \u00b5 bb";
 string secondMicro = "aa \u03bc bb";

 Assert.IsFalse(firstMicro == secondMicro);

 string upperFirstMicro = firstMicro.ToUpper();
 string upperSecondMicro = secondMicro.ToUpper();

 Assert.IsFalse(upperFirstMicro == upperSecondMicro);
Run Code Online (Sandbox Code Playgroud)

在我的情况下,第一次测试通过(显然,两个字符串都不同),但在第二种情况下,测试失败,因为两个文本是相同的($ AA M BB).我承认在其中一个案例中我应该使用CultureInfo - 但至少在第一种情况下(来自ASCII代码的微型符号)应该保持不变......有人可以帮助我理解为什么会发生这种情况吗?

显然,这里有另一个线程 - 如何正确地在.NET中大写希腊语单词?,但没有明显的答案......

谢谢.D.

c# uppercase

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