WebJob控制台应用程序中的ProcessQueueMessage函数(ProcessQueueMessage function in WebJob console app)
我正在创建一个新的控制台应用程序,我将在Azure上作为WebJob运行。 当我在Visual Studio中创建新应用程序时,它已经创建了一个Function.cs类,该类包含以下方法,该方法自动从队列中获取消息并对其进行处理。
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log) { log.WriteLine(message); }
我的问题是如何更好地控制处理队列消息。 例如,我想确保处理和删除邮件。 这个方法似乎对我有用,但我怎么知道消息是否正确处理? 如果失败怎么办,怎么告诉它不要删除邮件呢?
I'm creating a new console app that I will run as a WebJob on Azure. When I created the new app in Visual Studio, it already created a Function.cs class that contains the following method which automatically picks up the message from my queue and processes it.
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log) { log.WriteLine(message); }
My question is how do I have a bit more control over handling the queue message. For example, I 'd like to make sure the message is processed and deleted. This method seems to do all of that for me but how do I know if the message is processed correctly? What if it fails, how do I tell it not to delete the message?
原文:https://stackoverflow.com/questions/35052054
最满意答案
比在
xrange(N)
上循环更快的方法是:import itertools for _ in itertools.repeat(None, N): do_something()
A slightly faster approach than looping on
xrange(N)
is:import itertools for _ in itertools.repeat(None, N): do_something()
相关问答
更多-
做
N次(声明式语法)(do [2024-03-22]N times (declarative syntax)) 这个答案基于Array.forEach ,没有任何库,只是原生的香草 。 基本上调用something() 3次,使用: [1,2,3].forEach(function(i) { something(); }); 为了完成这个问题,这里有一个方法可以分别调用something() 1,2和3次: 这是2017年,你可以使用ES6: [1,2,3].forEach(i => Array(i).fill(i).forEach(_ => { something() })) 或在旧的ES5: [1,2 ... -
如果我发出N次条件变量的信号,它会解锁N个线程吗?(If I signal a condition variable N times, will it unblock N threads? [duplicate])[2022-06-19]
是的,如果条件变量上的B和C都被阻塞,并且条件变量上没有其他线程被阻塞,那么保持互斥锁调用pthread_cond_signal()两次将保证(最终)将它们唤醒。 这直接来自POSIX中的要求: pthread_cond_signal()函数应解除阻塞在指定条件变量cond上阻塞的至少一个线程(如果在cond上阻塞了任何线程)。 第一次调用pthread_cond_signal()必须取消阻塞B和C中的至少一个,因为这些是条件变量上阻塞的唯一线程。 因为互斥量仍然由信令线程保持,所以在第二次调用pthrea ... -
sed - 用N个变量的乘积代替幂N的变量(sed - replace a variable of power N by the product of N variables)[2022-10-22]
echo "cos(a)^3 +m1^4" | sed ' # encapsulate between + s/.*/+&+/ :a # For each power object /\^/!b end # isolate power object h s#\(.*[-+/*^]\)\([^-+/*^]*\)^\([0-9]\{1,2\}\)\(.*\)#\1\ \2\ \4# # isolate power value to convert it in useable reproducing fact ... -
pythonic的方式做某事N次没有索引变量?(pythonic way to do something N times without an index variable?)[2021-12-22]
比在xrange(N)上循环更快的方法是: import itertools for _ in itertools.repeat(None, N): do_something() A slightly faster approach than looping on xrange(N) is: import itertools for _ in itertools.repeat(None, N): do_something() -
列表“n”次列出每个值(Print each value in list “n” times)[2021-12-29]
使用模式fn n (x:xs) = ... ,表示x是列表中的第一个元素, xs是列表的其余部分。 您的case语句正在检查x是否为空列表,但模式匹配( (x:xs) )已经从列表中提取了它。 你想要的可能是其中之一(编译器知道它们是相同的,所以你使用哪一个是品味的问题): -- Version that uses a pattern match fn :: Int -> [a] -> [a] replicate' n x = take n (repeat x) fn _ [] = [] fn n (x:x ... -
您可以简单地使用list来迭代范围 : <#assign n = 5> <#list 0..
hello#list> 或者作为一个宏: <#macro repeat input times> <#list 0.. ${input}#list> #macro> <@repeat input="hello" times=5/> You could simply use list to iterate a range: <#assign n = 5> <#li ... -
您编写的测试代码与本文中的示例代码不同。 在示例代码中,首先计算n % 2 ,并将结果传递给unless函数。 在那里,您正在对结果执行Logical Not操作。 如果n是偶数,则n % 2将从0传递到unless 。 布尔比较0返回false ,并且! 否定结果(逻辑上没有),所以!0 == true 。 反过来,这会导致then函数触发。 如果n是奇数,则发生相反的情况。 传递除0以外的某些值,其值为false ,从而导致不触发。 相反,您尝试在不使用高阶函数的情况下重现示例代码将不会以相同的方式工作 ...
-
仅针对副本的隐藏元素,然后仅从克隆中删除该类: $('button').click(function() { $(".elements img.hidden").each(function() { var $this = $(this); if ($this.hasClass('image3')) { for (var i = 1; i < 3; i++) { $this.clone().removeClass('hidden').appendTo($this ...
-
旋转矩阵n次(Rotate a matrix n times)[2023-04-28]
你需要打破这个问题(提醒我来自gg和fb的面试问题): 首先解决一个序列一个单一的位置 然后解决旋转序列N次 将每个“圆圈”或环形模型化为一个数组。 您可能或可能不需要存储在单独的数据中 迭代每个环并应用旋转算法 让我们考虑需要旋转R时间的长度为L的数组的情况。 请注意,如果R是L的倍数,则数组将保持不变。 也要注意,向右旋转x次与向左旋转L - x相同(反之亦然)。 因此,您可以首先设计一种算法,能够左右旋转一个正好一个位置 减少向左旋转R次的问题,以将R modulo L向左旋转 如果你想进一步减少旋转 ... -
为什么内循环执行(n / 2)次而不是(n)次(Why is the inner loop executing (n/2) times instead of (n) times)[2022-01-30]
此循环平均执行n / 2次: 在第一次迭代中,这将执行最多n-1次,因为j从1开始 在第二次迭代中,这最多执行n-2次,因为j从2开始 在第三次迭代中,这最多执行n-3次,因为j从3开始 ... 在最后一次迭代中,它执行零次,因为i + 1等于数组的长度。 如果你将第一行添加到最后一行,第二行从后面添加到第二行,从第三行添加到第三行,依此类推,每对将产生n-1; 对于n的偶数值,将存在n / 2个这样的对,因此循环在n上执行的平均次数是n / 2。 This loop executes n/2 times ...