- Run
$ createdb uniq-db-test
to create DB - Run example with Ruby (e.g.,
$ ruby 1_find_or_create_by_single_thread.rb
)
With many successful INSERTs
Warming up --------------------------------------
# lib/sidekiq/memory_sampling_middleware.rb | |
# frozen_string_literal: true | |
class Sidekiq::MemorySamplingMiddleware | |
attr_accessor :logger | |
def initialize(options = { logger: Sidekiq::Logging.logger }) | |
self.logger = options.fetch(:logger) { raise 'Missing logger parameter in options' } | |
end | |
CLASS_KEY = 'class' |
# Put this function to your .bashrc file. | |
# Usage: mv oldfilename | |
# If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
# Original mv is called when it's called with more than one argument. | |
# It's useful when you want to change just a few letters in a long name. | |
# | |
# Also see: | |
# - imv from renameutils | |
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
module Api | |
module V2 | |
module ApiHelper | |
## Общий метод генерации ключей для кэша redis | |
def self.redis_key(params) | |
params[:locale] = I18n.locale | |
params_keys = params.keys.map(&:to_s).sort.map(&:to_sym) | |
['.', params_keys.map { |key| "#{key}:#{params[key]}" }.join('&'), '.'].join | |
end | |
end |
class CategoriesController < ApplicationController | |
def fields | |
render json: Field.where(category_id: params[:id]).order(:id) | |
end | |
end |
http://stackoverflow.com/questions/22667401/postgres-json-data-type-rails-query | |
http://stackoverflow.com/questions/40702813/query-on-postgres-json-array-field-in-rails | |
#payload: [{"kind"=>"person"}] | |
Segment.where("payload @> ?", [{kind: "person"}].to_json) | |
#data: {"interest"=>["music", "movies", "programming"]} | |
Segment.where("data @> ?", {"interest": ["music", "movies", "programming"]}.to_json) | |
Segment.where("data #>> '{interest, 1}' = 'movies' ") | |
Segment.where("jsonb_array_length(data->'interest') > 1") |
class Advert::UpsertVehicle | |
def self.call(vehicle) | |
@vehicle = vehicle | |
@outdoria = OutdoriaAPIService.new(vehicle.retailer.api_key) | |
return unless @request_body = VehicleData::ToRequestBody.(vehicle) | |
@vehicle_code = vehicle.custom_id | |
if @outdoria.advert_exists?(@vehicle_code) | |
self.update_advert | |
else |
Set on viewDidLoad() | |
self.tableView.backgroundColor = UIColor(patternImage: UIImage(named: "empty-cell.png")!) | |
Where ever you call your table reload after API call add this line: | |
self.tableView.backgroundColor = UIColor.whiteColor() | |
Here is the empty cell image used as a background pattern I made: | |
http://s3.postimg.org/895ohr0c3/empty_cell.png |