|
| 1 | +using System; |
| 2 | +using System.Threading.Tasks; |
| 3 | +using Fbeltrao.AzureFunctionExtensions; |
| 4 | +using Microsoft.AspNetCore.Http; |
| 5 | +using Microsoft.AspNetCore.Mvc; |
| 6 | +using Microsoft.Azure.WebJobs; |
| 7 | +using Microsoft.Azure.WebJobs.Extensions.Http; |
| 8 | +using Microsoft.Azure.WebJobs.Host; |
| 9 | +using Microsoft.Extensions.Logging; |
| 10 | +using StackExchange.Redis; |
| 11 | + |
| 12 | +namespace Fbeltrao.RedisSample |
| 13 | +{ |
| 14 | + public static class QueueTriggerWithRedisFunctions |
| 15 | + { |
| 16 | + [FunctionName(nameof(MoveQueueItemToRedis))] |
| 17 | + public static async Task MoveQueueItemToRedis( |
| 18 | + [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem, |
| 19 | + [RedisDatabase(Connection = "%redis_connectionstring%")] IDatabase db, |
| 20 | + ILogger log) |
| 21 | + { |
| 22 | + await db.ListRightPushAsync("my-queue", myQueueItem); |
| 23 | + log.LogInformation($"Queue trigger pushed to redis list: {myQueueItem}"); |
| 24 | + } |
| 25 | + |
| 26 | + |
| 27 | + [FunctionName(nameof(GetRedisList))] |
| 28 | + public static async Task<IActionResult> GetRedisList( |
| 29 | + [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, |
| 30 | + [RedisDatabase(Connection = "%redis_connectionstring%")] IDatabase db, |
| 31 | + ILogger log) |
| 32 | + { |
| 33 | + var values = await db.ListRangeAsync("my-queue"); |
| 34 | + return new OkObjectResult(new { values }); |
| 35 | + } |
| 36 | + } |
| 37 | +} |
0 commit comments