Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Elixir Cookbook
  • Toc
  • feedback
Elixir Cookbook

Elixir Cookbook

By : Paulo Pereira
4.5 (2)
close
Elixir Cookbook

Elixir Cookbook

4.5 (2)
By: Paulo Pereira

Overview of this book

This book is intended for users with some knowledge of the Elixir language syntax and basic data types/structures. Although this is a cookbook and no sequential reading is required, the book’s structure will allow less advanced users who follow it to be gradually exposed to some of Elixir’s features and concepts specific to functional programming. To get the most out of this book, you need to be well versed with Erlang.
Table of Contents (11 chapters)
close
10
Index

Using tasks to perform multiple concurrent computations


In this recipe, we will build a simple geolocation app that receives a list of IP addresses and outputs the country where the IP is registered. We will use Elixir's Task module to spawn one process per IP address in the list. The determination of the location will be performed concurrently.

The Task module in Elixir provides a simple abstraction for the use of processes with the purpose of performing one action during their life cycle. Normally, tasks are used when there is no need to perform communication between processes, and are a very powerful tool to help parallelize computation.

Getting ready

We will generate a Mix application, add the geolix application as a dependency, and also download a free IP database and configure the application to use it. We will also create two functions to geolocate the IPs: one sequential and another concurrent.

Let's get started:

  1. Generate a Mix application:

    > mix new geolocation_with_tasks --sup
    *...
bookmark search playlist font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete