Skip to main content

Posts

Ignoring Cancel Signals and Continuing Processing in a Spring WebFlux App

In a  Spring WebFlux  application, request processing is reactive, meaning that when a client  cancels a request  (e.g., due to a timeout or manual cancellation),  Spring immediately stops execution  by propagating a  cancel signal  in the reactive stream. However, in some cases,  we want to ensure that processing continues , even if the client disconnects. This is especially important when: Database updates  or  external API calls  must be completed to avoid an inconsistent state. Long-running operations should  not be interrupted . Logging, auditing, or side effects must still be processed. How to Keep Processing After a Cancel Signal To  decouple  HTTP request processing from the  application logic , we can use the  .cache()  operator. This ensures that the  execution continues , even if the client drops the connection. Understanding  .cache()  in Reactor <T> Flux...
Recent posts

Use Your Own Router When Your ISP Router Doesn’t Support Bridge Mode

Many internet service providers (ISPs) require you to use their provided router, and in some cases, these routers don’t support bridge mode. This can be frustrating if you want to use your own high-performance router for better speed, security, or customization. A common workaround is to place your second router in the DMZ (Demilitarized Zone) of the ISP-provided router. In this guide, I’ll explain how to set up your ISP’s router to work with your own router while minimizing issues. How This Works 1. Setting Up DMZ Mode Since your ISP’s router does not support full bridge mode, we’ll use DMZ to forward all traffic to your second router. This allows your better router to handle most of the network management, firewall, and routing tasks. 2. Dealing with Double NAT What is Double NAT? Your ISP’s router continues to perform NAT (Network Address Translation) for devices connected to it. Your second router will also perform NAT for devices connected to it. This is called double ...

Send WhatsApp Messages Automatically Using Apple Shortcuts

Apple Shortcuts is a great automation tool, but when it comes to WhatsApp, the default Send Message via WhatsApp  action has some limitations. It only allows sending messages to individual contacts (not groups) and always requires user interaction to press the send button. In this tutorial, I’ ll show you an alternative method that works for both individual contacts and groups without requiring manual confirmation. Steps to Automate WhatsApp Messages in Shortcuts 1. Send a Message Manually First Before setting up the shortcut, open the WhatsApp app and manually send a message to the contact or group you want to automate. This step ensures that WhatsApp registers the recipient in the action list later. 2. Add a Custom WhatsApp Action in Shortcuts Now, let’s configure the Shortcut: 1. Open the Shortcuts app and create a new shortcut. 2. Tap Add Action and search for WhatsApp . 3. Instead of selecting a specific action, tap on the WhatsApp app name itself. 4. Scrol...

Convert Latitude and Longitude to a Location in Apple Shortcuts

Apple Shortcuts is a powerful automation tool that allows you to perform a variety of tasks, including converting latitude and longitude coordinates into a location. In this tutorial, I’ll show you a simple way to do this using a few actions in the Shortcuts app. Steps to Convert Latitude and Longitude to a Location 1. Create a Text Action First, add a Text action in Shortcuts. This will be used to build a link to Apple Maps using latitude and longitude coordinates. In the Text field, enter the following template: https://maps.apple.com/?q=Latitude,Longitude Replace Latitude and Longitude with actual numeric values or variables if you’re getting coordinates dynamically. 2. Use the Text as Input for the Location Action Next, add a Location action. This action will take the Apple Maps link from the previous step and convert it into a location object. 3. Output the Location Once processed, the Location action will provide a location, which can be used in further steps ...