Question: Is it possible to do clustering without providing any input apart from the data? The clustering method/algorithm should decide from the data on how many logical groups the data can be divided, even it doesn't require me to input the threshold eucledian distance on which the clusters are built, this also needs to be learned from the data.

Could you please suggest me what is closest solution for my problem?

Answer: 
### What ActiveJob backend are you using?

* ActiveJob to provide asynchronous execution but does not provide asynchronicity itself.

You need to use some asynchronous backend like `sidekiq`, `delayed_job` or something else.
This is because you haven't set the time and rails picking up default time. and in log file also it shows that the deliver\_later method is not being called yet. 

Try using:

```
UserMailer.welcome_email(self).deliver_later(wait: 1.minute)

```

Then check the log after one min.