小编B-S*_*art的帖子

Azure Service Bus ReceiveBatch()的奇怪行为

目前使用Azure Service Bus主题并遇到使用ReceiveBatch方法接收我的消息的问题.问题是预期的结果实际上并不是我得到的结果.这是基本的代码设置,用例如下:

    SubscriptionClient client = SubscriptionClient.CreateFromConnectionString(connectionString, convoTopic, subName);

    IEnumerable<BrokeredMessage> messageList = client.ReceiveBatch(100);
        foreach (BrokeredMessage message in messageList)
        {
            try
            {
                Console.WriteLine(message.GetBody<string>() + message.MessageId);

                message.Complete();
            }
            catch (Exception ex)
            {
                message.Abandon();
            }
        }

    client.Close();
    MessageBox.Show("Done");
Run Code Online (Sandbox Code Playgroud)
  1. 使用上面的代码,如果我发送4条消息,那么在第一次运行时轮询我得到第一条消息.在第二轮比赛中,我得到了另外一部分.我期待在同一时间获得全部4分.它似乎总是在第一次民意调查中返回一个单数值,然后在随后的民意调查中返回其余值.(与3和5的结果相同,我在第二次尝试时发送n个消息中的n-1个,第一次尝试时发送1条消息).

  2. 如果我有0条消息要接收,则操作需要大约30-60秒才能获得messageList(具有0计数).我需要它立即返回.

  3. 如果我将代码更改为IEnumerable<BrokeredMessage> messageList = client.ReceiveBatch(100, new Timespan(0,0,0));然后问题#2消失,因为问题1仍然存在,我必须两次调用代码以获取所有消息.

我假设问题#2是由于我在#3中覆盖的默认超时值(尽管我发现如果有消息,它会立即响应而不等待默认时间,这令人困惑).我不知道为什么我从未在单个ReceiveBatch中收到全部消息.

c# azure azureservicebus

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

从 DOM 中删除元素时如何删除/隐藏引导工具提示

我目前正在 ReactJS 中开发一个项目。我的一些组件不是一直呈现,而是根据某些条件动态变化。当这些组件附有工具提示时,我注意到如果在隐藏元素时工具提示处于活动状态,则工具提示不会消失。我正在寻找一种在未呈现元素时删除或至少隐藏此工具提示的方法。

这就是我使用 jQuery 激活工具提示的方式:

$(document).ready(function() {
      $("body").tooltip({ selector: '[data-toggle=tooltip]', placement: 'bottom' })
    })
Run Code Online (Sandbox Code Playgroud)

这就是我在 html(或 jsx)中使用它的方式:

<a className="icon-btn" onClick={ () => {
//on Click I remove this parent element and show something else
}}>
<i className="fa fa-lg fa-pencil-square" title="Edit" data-toggle="tooltip"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

注意我无法通过工具提示选择所有元素:

$('[data-toggle=tooltip]').tooltip()
Run Code Online (Sandbox Code Playgroud)

显然这是因为我正在动态添加元素?至少这是我迄今为止的研究表明的

javascript jquery twitter-bootstrap bootstrap-4

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

如何跳过库函​​数中的某些可选参数

我一直在研究Winforms C#应用程序,我正在使用Twilio来实现SMS功能.Twilio有一个名为'ListSmsMessages'的函数,如下所示:

public virtual SmsMessageResult ListSmsMessages(
    string to, string from, DateTime? dateSent, int? pageNumber, int? count);
Run Code Online (Sandbox Code Playgroud)

文档说这些中的每一个都是可选的.我可以通过填写任何字段client.ListSmsMessages();或填写所有字段来成功调用该函数,client.ListSMSMessages("to","from", date, 1,10);但我无法选择我想要的参数.如client.ListSMSMessages("to",date);只.

我已经做了一些研究,发现C#4.0应该可以做类似的事情client.ListSMSMessages(to:"to",datesent: date);但是这不起作用.

我想知道是否因为我using Twilio;不是在编写我自己的类,如果这会影响我应该如何调用可选参数?或者他们的文档可能不正确,说明它们是可选的.

c# arguments function twilio

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

如何使用HTMLService从gs文件调用函数?

这让我疯了.我为我的Google网络应用编写了一个html页面,其中包含用.gs文件编写的函数.我要做的就是从.html文件中调用.gs文件中的函数.但是,我尝试的每种方法似乎都不起作用.我知道我的功能有效,因为它们在我运行它们时起作用.我错过了如何将.gs文件连接到.html文件.

我的.gs文件看起来像这样:

function doGet() {

  return HtmlService.createHtmlOutputFromFile('index');
}

function test()
{
  //getFormattedSpreadsheet("1xPDJJfCqWb2igug3NCFmJJ5nO49U6CK8mLwtaD727AY", "17qcsYh8M-cOwTg9K7sqqnKm0pGgEo6r7x1PguRf9Jk8", "Select School");
  archiveSheet("1wTNing5LAOYHbscQ_DTktIxvWcyc6gw6ZNTvAJDtkTo", "1ugNP0Pp97tnRKHLHa50j-QKx-4ynCfg3zHxtJTayiVk");

}
Run Code Online (Sandbox Code Playgroud)

我需要在单击按钮时调用该函数,我尝试了类似的东西(甚至没有google.script.run部分):

<button onclick="google.script.run(test())">Full</button>
Run Code Online (Sandbox Code Playgroud)

但我无法让我的按钮实际调用脚本.我读过你可以调用脚本通过只是把它们()函数来运行标记为好,但我想这能上点击,而不是负载运行.也许我只是不理解.gs和.html文件之间的联系.它们是单独的文件,但在同一个Google Web应用程序项目中.

html google-apps-script

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